{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.linear_model import LinearRegression, Lasso, LogisticRegression, ElasticNet\n",
    "from sklearn.ensemble import GradientBoostingRegressor, GradientBoostingClassifier\n",
    "from sklearn.preprocessing import PolynomialFeatures, StandardScaler, RobustScaler, QuantileTransformer\n",
    "from sklearn.pipeline import Pipeline\n",
    "import scipy.special\n",
    "from dml_iv import DMLIV\n",
    "from dr_iv import DRIV, ProjectedDRIV\n",
    "from dml_ate_iv import DMLATEIV"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Synthetic Data Generation - TripAdvisor"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Used for generating data that looks similar in structure (value distributions of private features are not representative of true data) to the data used for the intent-to-treat A/B test at TripAdvisor. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import locale\n",
    "\n",
    "n = 10000  # Generated dataset size\n",
    "np.random.seed(123)\n",
    "\n",
    "X_colnames = {\n",
    "    'days_visited_exp_pre': 'day_count_pre',  # How many days did they visit TripAdvisor attractions pages in the pre-period\n",
    "    'days_visited_free_pre': 'day_count_pre',  # How many days did they visit TripAdvisor through free channels (e.g. domain direct) in the pre-period\n",
    "    'days_visited_fs_pre': 'day_count_pre',  # How many days did they visit TripAdvisor fs pages in the pre-period    \n",
    "    'days_visited_hs_pre': 'day_count_pre',  # How many days did they visit TripAdvisor hotels pages in the pre-period\n",
    "    'days_visited_rs_pre': 'day_count_pre',  # How many days did they visit TripAdvisor restaurant pages in the pre-period\n",
    "    'days_visited_vrs_pre': 'day_count_pre',  # How many days did they visit TripAdvisor vrs pages in the pre-period\n",
    "    'is_existing_member': 'binary', #Binary indicator of whether they are existing member\n",
    "    'locale_en_US': 'binary',  # User's locale\n",
    "    'os_type': 'os',  # User's operating system\n",
    "    'revenue_pre': 'revenue',  # Revenue in the pre-period\n",
    "}\n",
    "\n",
    "treat_colnames = {\n",
    "    'treatment': 'binary',  # Did they receive the easier sign-up process in the experiment? [This is the instrument]\n",
    "    'is_member': 'is_member'  # Did they become a member during the experiment period (through any means)? [This is the treatment of interest]\n",
    "}\n",
    "\n",
    "outcome_colnames = {\n",
    "    'days_visited': 'days_visited',  # How many days did they visit TripAdvisor in the experimental period\n",
    "}\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def gen_data(data_type, n):\n",
    "    gen_func = {'day_count_pre': lambda: np.random.randint(0, 29 , n),  # Pre-experiment period was 28 days\n",
    "                'day_count_post': lambda: np.random.randint(0, 15, n),  # Experiment ran for 14 days\n",
    "                'os': lambda: np.random.choice(['osx', 'windows', 'linux'], n),\n",
    "                'locale': lambda: np.random.choice(list(locale.locale_alias.keys()), n),\n",
    "                'count': lambda: np.random.lognormal(1, 1, n).astype('int'),\n",
    "                'binary': lambda: np.random.binomial(1, .5, size=(n,)),\n",
    "                ##'days_visited': lambda: \n",
    "                'revenue': lambda: np.round(np.random.lognormal(0, 3, n), 2)\n",
    "                \n",
    "               }\n",
    "    \n",
    "    return gen_func[data_type]() if data_type else None\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_data = {colname: gen_data(datatype, n) for colname, datatype in X_colnames.items()}\n",
    "##treat_data = {colname: gen_data(datatype, N) for colname, datatype in treat_colnames.items()}\n",
    "##outcome_data = {colname: gen_data(datatype, N) for colname, datatype in outcome_colnames.items()}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['days_visited_exp_pre' 'days_visited_free_pre' 'days_visited_fs_pre'\n",
      " 'days_visited_hs_pre' 'days_visited_rs_pre' 'days_visited_vrs_pre'\n",
      " 'is_existing_member' 'locale_en_US' 'os_type' 'revenue_pre']\n"
     ]
    }
   ],
   "source": [
    "X_data=pd.DataFrame({**X_data})\n",
    "# Turn strings into categories for numeric mapping\n",
    "X_data['os_type'] = X_data.os_type.astype('category').cat.codes\n",
    "print(X_data.columns.values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_pre=X_data.values.astype('float')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "def dgp_binary(X,n,true_fn):\n",
    "    ##X = np.random.uniform(-1, 1, size=(n, d))\n",
    "    Z = np.random.binomial(1, .5, size=(n,))\n",
    "    nu = np.random.uniform(-5, 5, size=(n,))\n",
    "    coef_Z = 0.6\n",
    "    plt.title(\"Pr[T=1 | Z=1, X] vs Pr[T=1 | Z=0, X]\")\n",
    "    plt.scatter(X[:, 0], coef_Z*scipy.special.expit(0.4*X[:, 0] + nu))\n",
    "    plt.scatter(X[:, 0], .1*np.ones(X.shape[0]))\n",
    "    plt.show()\n",
    "    C = np.random.binomial(1, coef_Z*scipy.special.expit(0.4*X[:, 0] + nu)) # Compliers when recomended\n",
    "    C0 = np.random.binomial(1, .006*np.ones(X.shape[0])) # Non-compliers when not recommended \n",
    "    T = C * Z + C0 * (1 - Z)\n",
    "    y = true_fn(X) * T + 2*nu + 5*(X[:, 0]>0) + 0.1*np.random.uniform(0, 1, size=(n,))\n",
    "    return y, T, Z\n",
    "true_fn = lambda X: (.8 + X[:,0]*(X[:,0]>15))# - 3*X[:, 6])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y, T, Z = dgp_binary(X_pre, n, true_fn)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = QuantileTransformer(subsample=100000).fit_transform(X_pre)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#### y menas number of days visit TripAdvisor in the experimental period, should be in range [0,14], \n",
    "##should be strong right skewed\n",
    "plt.hist(y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True ATE: 10.710\n"
     ]
    }
   ],
   "source": [
    "print(\"True ATE: {:.3f}\".format(np.mean(true_fn(X_pre))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x144 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 2))\n",
    "plt.subplot(1, 2, 1)\n",
    "plt.hist(T[Z==0])\n",
    "plt.title(\"T[Z=0]\")\n",
    "plt.subplot(1, 2, 2)\n",
    "plt.hist(T[Z==1])\n",
    "plt.title(\"T[Z=1]\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "New members: in treatment = 0.514747, in control = 0.006423\n"
     ]
    }
   ],
   "source": [
    "print(\"New members: in treatment = {:f}, in control = {:f}\".format(T[Z == 1].sum()/Z.sum(), T[Z == 0].sum()/(1-Z).sum()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Z treatment proportion: 0.50180\n"
     ]
    }
   ],
   "source": [
    "print(\"Z treatment proportion: {:.5f}\".format(np.mean(Z)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Defining some generic regressors and classifiers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "from dml_ate_iv import DMLATEIV\n",
    "from utilities import RegWrapper, SeparateModel\n",
    "from sklearn.model_selection import GridSearchCV, StratifiedKFold, train_test_split\n",
    "from sklearn.ensemble import RandomForestClassifier, RandomForestRegressor\n",
    "from sklearn.dummy import DummyClassifier\n",
    "from sklearn.linear_model import LinearRegression, LogisticRegression, LogisticRegressionCV, LassoCV\n",
    "from sklearn import metrics\n",
    "from xgboost import XGBClassifier, XGBRegressor\n",
    "from xgb_utilities import XGBWrapper\n",
    "\n",
    "\n",
    "# Define a generic non-parametric regressor\n",
    "#model = lambda: GradientBoostingRegressor(n_estimators=20, max_depth=3, min_samples_leaf=20,\n",
    "#                                         n_iter_no_change=5, min_impurity_decrease=.001, tol=0.001)\n",
    "model = lambda: XGBWrapper(XGBRegressor(gamma=0.001, n_estimators=100, min_child_weight=50, n_jobs=10),\n",
    "                           early_stopping_rounds=5, eval_metric='rmse', binary=False)\n",
    "\n",
    "# model = lambda: RandomForestRegressor(n_estimators=100)\n",
    "# model = lambda: Lasso(alpha=0.0001) #CV(cv=5)\n",
    "# model = lambda: GradientBoostingRegressor(n_estimators=60)\n",
    "# model = lambda: LinearRegression(n_jobs=-1)\n",
    "# model = lambda: LassoCV(cv=5, n_jobs=-1)\n",
    "\n",
    "# Define a generic non-parametric classifier. We have to wrap it with the RegWrapper, because\n",
    "# we want to use predict_proba and not predict. The RegWrapper calls predict_proba of the\n",
    "# underlying model whenever predict is called.\n",
    "#model_clf = lambda: RegWrapper(GradientBoostingClassifier(n_estimators=20, max_depth=3, min_samples_leaf=20,\n",
    "#                                         n_iter_no_change=5, min_impurity_decrease=.001, tol=0.001))\n",
    "model_clf = lambda: RegWrapper(XGBWrapper(XGBClassifier(gamma=0.001, n_estimators=100, min_child_weight=50, n_jobs=10),\n",
    "                                          early_stopping_rounds=5, eval_metric='logloss', binary=True))\n",
    "# model_clf = lambda: RandomForestClassifier(n_estimators=100)\n",
    "# model_clf = lambda: RegWrapper(GradientBoostingClassifier(n_estimators=60))\n",
    "# model_clf = lambda: RegWrapper(LogisticRegression(C=10, penalty='l1', solver='liblinear'))\n",
    "# model_clf = lambda: RegWrapper(LogisticRegressionCV(n_jobs=-1, cv=3, scoring='neg_log_loss'))\n",
    "\n",
    "model_clf_dummy = lambda: RegWrapper(DummyClassifier(strategy='prior'))\n",
    "\n",
    "# We need to specify models to be used for each of these residualizations\n",
    "model_Y_X = lambda: model() # model for E[Y | X]\n",
    "model_T_X = lambda: model_clf() # model for E[T | X]. We use a classifier since T is binary\n",
    "model_Z_X = lambda: model_clf_dummy() # model for E[Z | X]. We use a classifier since Z is binary\n",
    "\n",
    "\n",
    "# For DMLIV we also need a model for E[T | X, Z]. We use a classifier since T is binary\n",
    "# Because Z is also binary, we could have also done a more complex model_T_XZ, where we split\n",
    "# the data based on Z=1 and Z=0 and fit a separate sub-model for each case.\n",
    "model_T_XZ = lambda: SeparateModel(model_clf(), model_clf())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_separate(X, X_pre, cate):\n",
    "    ones = X[:, 6]>.5\n",
    "    lower = []\n",
    "    upper = []\n",
    "    unique_X = np.unique(X[ones, 0])\n",
    "    for t in unique_X:\n",
    "        upper.append(np.percentile(cate[ones & (X[:, 0]==t)], 99))\n",
    "        lower.append(np.percentile(cate[ones & (X[:, 0]==t)], 1))\n",
    "    p = plt.fill_between(unique_X, lower, upper, label='est1', alpha=.5)\n",
    "    plt.plot(unique_X, lower, color=p.get_facecolor()[0], alpha=.5)\n",
    "    plt.plot(unique_X, upper, color=p.get_facecolor()[0], alpha=.5)\n",
    "    plt.scatter(X[ones, 0], true_fn(X_pre[ones]), label='true1', alpha=.8)\n",
    "    ones = X[:, 6]<.5\n",
    "    lower = []\n",
    "    upper = []\n",
    "    unique_X = np.unique(X[ones, 0])\n",
    "    for t in unique_X:\n",
    "        upper.append(np.percentile(cate[ones & (X[:, 0]==t)], 99))\n",
    "        lower.append(np.percentile(cate[ones & (X[:, 0]==t)], 1))\n",
    "    p = plt.fill_between(unique_X, lower, upper, label='est0', alpha=.5)\n",
    "    plt.plot(unique_X, lower, color=p.get_facecolor()[0], alpha=.5)\n",
    "    plt.plot(unique_X, upper, color=p.get_facecolor()[0], alpha=.5)\n",
    "    plt.scatter(X[ones, 0], true_fn(X_pre[ones]), label='true0', alpha=.8)\n",
    "    plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# DMLATEIV"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<dml_ate_iv.DMLATEIV at 0x2b34dcfd4a8>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dmlateiv_obj = DMLATEIV(model_Y_X(), model_T_X(), model_Z_X(),\n",
    "                  n_splits=10, # n_splits determines the number of splits to be used for cross-fitting.\n",
    "                  binary_instrument=True, # a flag whether to stratify cross-fitting by instrument\n",
    "                  binary_treatment=True # a flag whether to stratify cross-fitting by treatment\n",
    "                 )\n",
    "\n",
    "dmlateiv_obj.fit(y, T, X, Z)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True ATE: 10.710\n",
      "Estimate: 12.471\n",
      "ATE Estimate Interval: (11.804, 13.138)\n",
      "ATE Estimate Std: 0.340\n"
     ]
    }
   ],
   "source": [
    "ta_effect = dmlateiv_obj.effect()\n",
    "ta_effect_conf = dmlateiv_obj.normal_effect_interval(lower=2.5, upper=97.5)\n",
    "\n",
    "print(\"True ATE: {:.3f}\".format(np.mean(true_fn(X_pre))))\n",
    "print(\"Estimate: {:.3f}\".format(ta_effect))\n",
    "print(\"ATE Estimate Interval: ({:.3f}, {:.3f})\".format(ta_effect_conf[0], ta_effect_conf[1]))\n",
    "print(\"ATE Estimate Std: {:.3f}\".format(dmlateiv_obj.std))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Exogenous Treatment Approaches"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<caption>OLS Regression Results</caption>\n",
       "<tr>\n",
       "  <th>Dep. Variable:</th>            <td>y</td>        <th>  R-squared:         </th> <td>   0.360</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Model:</th>                   <td>OLS</td>       <th>  Adj. R-squared:    </th> <td>   0.360</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Method:</th>             <td>Least Squares</td>  <th>  F-statistic:       </th> <td>   5630.</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Date:</th>             <td>Fri, 07 Jun 2019</td> <th>  Prob (F-statistic):</th>  <td>  0.00</td>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Time:</th>                 <td>20:25:38</td>     <th>  Log-Likelihood:    </th> <td> -34896.</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>No. Observations:</th>      <td> 10000</td>      <th>  AIC:               </th> <td>6.980e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Residuals:</th>          <td>  9998</td>      <th>  BIC:               </th> <td>6.981e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Model:</th>              <td>     1</td>      <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Covariance Type:</th>      <td>nonrobust</td>    <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "    <td></td>       <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>const</th> <td>    4.5161</td> <td>    0.092</td> <td>   48.936</td> <td> 0.000</td> <td>    4.335</td> <td>    4.697</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>x1</th>    <td>   13.5406</td> <td>    0.180</td> <td>   75.030</td> <td> 0.000</td> <td>   13.187</td> <td>   13.894</td>\n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "  <th>Omnibus:</th>       <td>24.348</td> <th>  Durbin-Watson:     </th> <td>   1.975</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Prob(Omnibus):</th> <td> 0.000</td> <th>  Jarque-Bera (JB):  </th> <td>  24.515</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Skew:</th>          <td> 0.120</td> <th>  Prob(JB):          </th> <td>4.75e-06</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Kurtosis:</th>      <td> 2.965</td> <th>  Cond. No.          </th> <td>    2.46</td>\n",
       "</tr>\n",
       "</table><br/><br/>Warnings:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified."
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.summary.Summary'>\n",
       "\"\"\"\n",
       "                            OLS Regression Results                            \n",
       "==============================================================================\n",
       "Dep. Variable:                      y   R-squared:                       0.360\n",
       "Model:                            OLS   Adj. R-squared:                  0.360\n",
       "Method:                 Least Squares   F-statistic:                     5630.\n",
       "Date:                Fri, 07 Jun 2019   Prob (F-statistic):               0.00\n",
       "Time:                        20:25:38   Log-Likelihood:                -34896.\n",
       "No. Observations:               10000   AIC:                         6.980e+04\n",
       "Df Residuals:                    9998   BIC:                         6.981e+04\n",
       "Df Model:                           1                                         \n",
       "Covariance Type:            nonrobust                                         \n",
       "==============================================================================\n",
       "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
       "------------------------------------------------------------------------------\n",
       "const          4.5161      0.092     48.936      0.000       4.335       4.697\n",
       "x1            13.5406      0.180     75.030      0.000      13.187      13.894\n",
       "==============================================================================\n",
       "Omnibus:                       24.348   Durbin-Watson:                   1.975\n",
       "Prob(Omnibus):                  0.000   Jarque-Bera (JB):               24.515\n",
       "Skew:                           0.120   Prob(JB):                     4.75e-06\n",
       "Kurtosis:                       2.965   Cond. No.                         2.46\n",
       "==============================================================================\n",
       "\n",
       "Warnings:\n",
       "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
       "\"\"\""
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Simply regressing y on T\n",
    "from utilities import StatsModelLinearRegression\n",
    "StatsModelLinearRegression().fit(T.reshape(-1, 1), y).summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "11.925897467470786\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Regressing y on X, X*T, T and setting CATE(X) = Pred(X, X*1, 1) - Pred(X, X*0, 0))\n",
    "from econml.utilities import hstack\n",
    "est = StatsModelLinearRegression().fit(hstack([X, X*T.reshape(-1, 1), T.reshape(-1, 1)]), y)\n",
    "T_one = np.ones(T.shape[0])\n",
    "T_zero = np.zeros(T.shape[0])\n",
    "driv_cate = est.predict(hstack([X, X*T_one.reshape(-1, 1), T_one.reshape(-1, 1)]))-\\\n",
    "            est.predict(hstack([X, X*T_zero.reshape(-1, 1), T_zero.reshape(-1, 1)]))\n",
    "print(np.mean(driv_cate))\n",
    "# We can also see how it compares to the true CATE at each target point and calculate MSE\n",
    "plt.title(\"Exog-T CATE: MSE {:.2}\".format(np.mean((true_fn(X_pre) - driv_cate)**2)))\n",
    "plot_separate(X, X_pre, driv_cate)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "12.426392029432668\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Doing a full fledged DML for conditionally exogenous treatment\n",
    "from econml.dml import DML\n",
    "dml = DML(model_Y_X(), model_T_X(), LassoCV(cv=3))\n",
    "dml.fit(y, T, X)\n",
    "dml_cate = dml.effect(X)\n",
    "print(np.mean(dml_cate))\n",
    "# We can also see how it compares to the true CATE at each target point and calculate MSE\n",
    "plt.title(\"Exog-T CATE: MSE {:.2}\".format(np.mean((true_fn(X_pre) - dml_cate)**2)))\n",
    "plot_separate(X, X_pre, dml_cate)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# DMLIV CATE"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\ndmliv_model_effect = lambda: model()\\ncate = GenericDMLIV(model_Y_X(), model_T_X(), model_T_XZ(), \\n             dmliv_model_effect(),\\n             n_splits=10, # number of splits to use for cross-fitting\\n             binary_instrument=True, # a flag whether to stratify cross-fitting by instrument\\n             binary_treatment=True # a flag whether to stratify cross-fitting by treatment\\n            )'"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from dml_iv import DMLIV, GenericDMLIV\n",
    "from utilities import SelectiveLasso, SeparateModel\n",
    "from sklearn.linear_model import LassoCV\n",
    "from econml.utilities import hstack\n",
    "\n",
    "np.random.seed(123)\n",
    "\n",
    "# We now specify the features to be used for heterogeneity. We will fit a CATE model of the form\n",
    "#      theta(X) = <theta, phi(X)>\n",
    "# for some set of features phi(X). The featurizer needs to support fit_transform, that takes\n",
    "# X and returns phi(X). We need to include a bias if we also want a constant term.\n",
    "dmliv_featurizer = lambda: PolynomialFeatures(degree=1, include_bias=True)\n",
    "\n",
    "# Then we need to specify a model to be used for fitting the parameters theta in the linear form.\n",
    "# This model will minimize the square loss:\n",
    "#        (Y - E[Y|X] - <theta, phi(X)> * (E[T|X,Z] - E[T|X]))**2\n",
    "# potentially with some regularization on theta. Here we use an ell_1 penalty on theta\n",
    "# dmliv_model_effect = lambda: LinearRegression()\n",
    "\n",
    "# We could also use LassoCV to select the regularization weight in the final stage with\n",
    "# cross validation.\n",
    "# dmliv_model_effect = lambda: LassoCV(fit_intercept=False, cv=3)\n",
    "\n",
    "# If we also have a prior that there is no effect heterogeneity we can use a selective lasso\n",
    "# that does not penalize the constant term in the CATE model\n",
    "feature_inds = np.arange(1, X.shape[1]+1)\n",
    "dmliv_model_effect = lambda: SelectiveLasso(feature_inds, LassoCV(cv=5, n_jobs=-1))\n",
    "\n",
    "cate = DMLIV(model_Y_X(), model_T_X(), model_T_XZ(), \n",
    "             dmliv_model_effect(), dmliv_featurizer(),\n",
    "             n_splits=10, # number of splits to use for cross-fitting\n",
    "             binary_instrument=True, # a flag whether to stratify cross-fitting by instrument\n",
    "             binary_treatment=True # a flag whether to stratify cross-fitting by treatment\n",
    "            )\n",
    "\"\"\"\n",
    "dmliv_model_effect = lambda: model()\n",
    "cate = GenericDMLIV(model_Y_X(), model_T_X(), model_T_XZ(), \n",
    "             dmliv_model_effect(),\n",
    "             n_splits=10, # number of splits to use for cross-fitting\n",
    "             binary_instrument=True, # a flag whether to stratify cross-fitting by instrument\n",
    "             binary_treatment=True # a flag whether to stratify cross-fitting by treatment\n",
    "            )\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wall time: 3.98 s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<dml_iv.DMLIV at 0x2b34d30a550>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "cate.fit(y, T, X, Z, store_final=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "dmliv_effect = cate.effect(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ATE Estimate: 10.817\n",
      "True ATE: 10.710\n"
     ]
    }
   ],
   "source": [
    "# We can average the CATE to get an ATE\n",
    "print(\"ATE Estimate: {:.3f}\".format(np.mean(dmliv_effect)))\n",
    "print(\"True ATE: {:.3f}\".format(np.mean(true_fn(X_pre))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# We can also see how it compares to the true CATE at each target point and calculate MSE\n",
    "plt.title(\"DMLIV CATE: MSE {:.2}\".format(np.mean((true_fn(X_pre) - dmliv_effect)**2)))\n",
    "plot_separate(X, X_pre, dmliv_effect)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEKCAYAAAAB0GKPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xl8HmW9///XJ1uTpmmbpGualqYrlAItdEFkUwFBFETkgHjODxVERI67R1y+qIgPN75wQPGhqIiCyCJHvxWLPewg0tKU7rSF7knTNm3Sfcl2f35/zKTchLSZpPfkvpO+nw/ux8xcc83MZ9KQzz3XNXONuTsiIiIdyUp3ACIi0jMoYYiISCRKGCIiEokShoiIRKKEISIikShhiIhIJEoYIiISiRKGiIhEooQhIiKR5KQ7gFQZNGiQjx49Ot1hiIj0KAsWLNju7oOj1O01CWP06NFUVlamOwwRkR7FzDZErasmKRERiUQJQ0REIok1YZjZhWa2ysxWm9nN7ay/wcyWmtkiM/unmU1KWveNcLtVZvb+OOMUEZGOxdaHYWbZwD3A+UA1MN/MZrn760nVHnL3X4b1LwHuAC4ME8dVwIlAGfC0mU1w95a44hURaWpqorq6moMHD6Y7lJTLz8+nvLyc3NzcLu8jzk7vGcBqd18LYGYPA5cChxKGu+9Oql8ItL6c41LgYXdvANaZ2epwf6/EGK+IHOOqq6spKipi9OjRmFm6w0kZd6euro7q6moqKiq6vJ84m6RGAFVJy9Vh2duY2efMbA3wE+Dzndz2ejOrNLPKbdu2pSxwETk2HTx4kNLS0l6VLADMjNLS0qO+coozYbT3E3/H6/3c/R53Hwt8Hfh2J7e9192nufu0wYMj3UYsInJEvS1ZtErFecWZMKqBkUnL5UDNEeo/DHy4i9uKiEjM4uzDmA+MN7MKYBNBJ/bVyRXMbLy7vxkuXgy0zs8CHjKzOwg6vccDr8YYq4jIOzw0b2NK93f1zFEp29f999/PBRdcQFlZWcr22ZHYEoa7N5vZTcAcIBu4z92Xm9mtQKW7zwJuMrPzgCZgB3BNuO1yM3uUoIO8Gfic7pDqpSp/F73utE/GF4dID3P//fczefLk3pEwANx9NjC7TdktSfNfOMK2PwB+EF90IiKZ58EHH+Tuu++msbGRmTNn8otf/IJrr72WyspKzIxPfepTjBw5ksrKSj7+8Y9TUFDAK6+8QkFBQeyx9ZqxpEREeroVK1bwyCOP8PLLL5Obm8uNN97IbbfdxqZNm1i2bBkAO3fuZODAgfz85z/n9ttvZ9q0ad0Wn4YGERHJEM888wwLFixg+vTpTJkyhWeeeYb6+nrWrl3Lf/7nf/KPf/yD/v37py0+JQwRkQzh7lxzzTUsWrSIRYsWsWrVKu666y4WL17Mueeeyz333MN1112XtviUMEREMsT73vc+/vznP1NbWwtAfX09GzZsIJFIcPnll/P973+f1157DYCioiL27NnTrfGpD0NE5DBSeRtsFJMmTeK2227jggsuIJFIkJubyx133MFll11GIpEA4Ic//CEAn/jEJ7jhhhvU6S0icqy68sorufLKK99W1npVkezyyy/n8ssv766wADVJiYhIREoYIiISiRKGiIhEooQhIiKRKGGIiEgkShgiIhKJbqsVETmczoymHEUHIy7v3LmThx56iBtvvDG1x00RXWGIiGSInTt38otf/OId5S0tmfF2ByUMEZEMcfPNN7NmzRqmTJnC9OnTec973sPVV1/NSSedxPr165k8efKhurfffjvf/e53AVizZg0XXnghp512GmeddRYrV66MJT41SYmIZIgf/ehHLFu2jEWLFvH8889z8cUXs2zZMioqKli/fv1ht7v++uv55S9/yfjx45k3bx433ngjzz77bMrjU8IQEclQM2bMoKKi4oh19u7dy7/+9S+uuOKKQ2UNDQ2xxKOEISKSoQoLCw/N5+TkHBqAEODgwYMAJBIJBg4cyKJFi2KPR30YIiIZ4khDlg8dOpTa2lrq6upoaGjgiSeeAKB///5UVFTw2GOPAcE7NRYvXhxLfLrCEBE5nA5ug0210tJS3v3udzN58mQKCgoYOnTooXW5ubnccsstzJw5k4qKCo4//vhD6/74xz/y2c9+lttuu42mpiauuuoqTjnllJTHZ+6e8p2mw7Rp07yysjLdYUhndeY+927+n1eOPStWrOCEE05Idxixae/8zGyBu0d6MbiapEREJBIlDBERiUQJQ0QkSW9ppm8rFeelhCEiEsrPz6eurq7XJQ13p66ujvz8/KPaj+6SEhEJlZeXU11dzbZt29IdSsrl5+dTXl5+VPuINWGY2YXAXUA28Bt3/1Gb9V8GrgOagW3A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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "##histogram of estimated treatment effect\n",
    "import seaborn as sns\n",
    "\n",
    "sns.distplot(dmliv_effect, label='est')\n",
    "sns.distplot(true_fn(X_pre), label='true')\n",
    "plt.legend()\n",
    "plt.xlabel(\"Treatment Effect\")\n",
    "plt.ylabel(\"Frequency\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Algorithm 3 - DRIV ATE"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "from utilities import SubsetWrapper, StatsModelLinearRegression, ConstantModel\n",
    "from dr_iv import IntentToTreatDRIV\n",
    "from utilities import WeightWrapper\n",
    "\n",
    "np.random.seed(123)\n",
    "\n",
    "# For intent to treat DRIV we need a flexible model of the CATE to be used in the preliminary estimation.\n",
    "# This flexible model needs to accept sample weights at fit time. Here we use a weightWrapper to wrap\n",
    "# a lasso estimator. WeightWrapper requires a linear model with no intercept, hence the Pipeline\n",
    "# that adds a bias to the features.\n",
    "driv_flexible_model_effect = lambda: WeightWrapper(Pipeline([('bias', PolynomialFeatures(degree=1, include_bias=True)),\n",
    "                                      ('lasso',  SelectiveLasso(np.arange(1, X.shape[1]+1), LassoCV(cv=5, n_jobs=-1)))]))\n",
    "# Then we can also define any final model to project to. Here we project to a constant model to get an ATE\n",
    "driv_final_model_effect = lambda: ConstantModel()\n",
    "\n",
    "dr_cate = IntentToTreatDRIV(model_Y_X(), model_T_XZ(),\n",
    "                            driv_flexible_model_effect(),\n",
    "                            final_model_effect=driv_final_model_effect(),\n",
    "                            cov_clip=0.0001,\n",
    "                            n_splits=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wall time: 7.64 s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<dr_iv.IntentToTreatDRIV at 0x2b34b1f8ac8>"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "dr_cate.fit(y, T, X, Z, store_final=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<caption>OLS Regression Results</caption>\n",
       "<tr>\n",
       "  <th>Dep. Variable:</th>            <td>y</td>        <th>  R-squared:         </th> <td>   0.000</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Model:</th>                   <td>OLS</td>       <th>  Adj. R-squared:    </th> <td>   0.000</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Method:</th>             <td>Least Squares</td>  <th>  F-statistic:       </th> <td>     inf</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Date:</th>             <td>Fri, 07 Jun 2019</td> <th>  Prob (F-statistic):</th>  <td>   nan</td>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Time:</th>                 <td>20:26:17</td>     <th>  Log-Likelihood:    </th> <td> -47367.</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>No. Observations:</th>      <td> 10000</td>      <th>  AIC:               </th> <td>9.474e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Residuals:</th>          <td>  9999</td>      <th>  BIC:               </th> <td>9.474e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Model:</th>              <td>     0</td>      <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Covariance Type:</th>      <td>nonrobust</td>    <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "    <td></td>       <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>const</th> <td>   10.8518</td> <td>    0.276</td> <td>   39.319</td> <td> 0.000</td> <td>   10.311</td> <td>   11.393</td>\n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "  <th>Omnibus:</th>       <td>305.981</td> <th>  Durbin-Watson:     </th> <td>   1.982</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Prob(Omnibus):</th> <td> 0.000</td>  <th>  Jarque-Bera (JB):  </th> <td> 206.801</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Skew:</th>          <td>-0.237</td>  <th>  Prob(JB):          </th> <td>1.24e-45</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Kurtosis:</th>      <td> 2.478</td>  <th>  Cond. No.          </th> <td>    1.00</td>\n",
       "</tr>\n",
       "</table><br/><br/>Warnings:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified."
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.summary.Summary'>\n",
       "\"\"\"\n",
       "                            OLS Regression Results                            \n",
       "==============================================================================\n",
       "Dep. Variable:                      y   R-squared:                       0.000\n",
       "Model:                            OLS   Adj. R-squared:                  0.000\n",
       "Method:                 Least Squares   F-statistic:                       inf\n",
       "Date:                Fri, 07 Jun 2019   Prob (F-statistic):                nan\n",
       "Time:                        20:26:17   Log-Likelihood:                -47367.\n",
       "No. Observations:               10000   AIC:                         9.474e+04\n",
       "Df Residuals:                    9999   BIC:                         9.474e+04\n",
       "Df Model:                           0                                         \n",
       "Covariance Type:            nonrobust                                         \n",
       "==============================================================================\n",
       "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
       "------------------------------------------------------------------------------\n",
       "const         10.8518      0.276     39.319      0.000      10.311      11.393\n",
       "==============================================================================\n",
       "Omnibus:                      305.981   Durbin-Watson:                   1.982\n",
       "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              206.801\n",
       "Skew:                          -0.237   Prob(JB):                     1.24e-45\n",
       "Kurtosis:                       2.478   Cond. No.                         1.00\n",
       "==============================================================================\n",
       "\n",
       "Warnings:\n",
       "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
       "\"\"\""
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dr_cate.effect_model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 3.51178355e+01  9.93516195e-02  1.20372976e-01  4.65886192e-02\n",
      " -2.40943550e-01 -2.89931484e-02 -1.53903712e-01 -6.79011889e-02\n",
      "  8.13619639e-02 -1.64333613e-01]\n",
      "-6.696210866883943\n"
     ]
    }
   ],
   "source": [
    "lr = LinearRegression().fit(X, true_fn(X_pre))\n",
    "print(lr.coef_)\n",
    "print(lr.intercept_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Projecting to subset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0 1 2 3 4 5 6 7 8 9]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<dr_iv.IntentToTreatDRIV at 0x2b34b1f8ac8>"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from utilities import WeightWrapper\n",
    "subset_names = X_data.columns.values\n",
    "#subset_names = set(['days_visited_as_pre', 'is_existing_member'])\n",
    "# list of indices of features X to use in the final model\n",
    "feature_inds = np.argwhere([(x in subset_names) for x in X_data.columns.values]).flatten()\n",
    "print(feature_inds)\n",
    "# Because we are projecting to a low dimensional model space, we can\n",
    "# do valid inference and we can use statsmodel linear regression to get all\n",
    "# the hypothesis testing capability\n",
    "lr_driv_model_effect = lambda: SubsetWrapper(StatsModelLinearRegression(),\n",
    "                                          feature_inds # list of indices of features X to use in the final model\n",
    "                                         )\n",
    "dr_cate.refit_final(lr_driv_model_effect())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "driv_cate = dr_cate.effect(X[:, feature_inds])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "##histogram of estimated treatment effect\n",
    "import seaborn as sns\n",
    "\n",
    "sns.distplot(driv_cate, label='est')\n",
    "sns.distplot(true_fn(X_pre), label='true')\n",
    "plt.legend()\n",
    "plt.xlabel(\"Treatment Effect\")\n",
    "plt.ylabel(\"Frequency\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# We can also see how it compares to the true CATE at each target point and calculate MSE\n",
    "plt.title(\"DMLIV CATE: MSE {:.2}\".format(np.mean((true_fn(X_pre) - driv_cate)**2)))\n",
    "plot_separate(X, X_pre, driv_cate)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10.85178218531559"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# To get the ATE we look at the params of the fitted statsmodel\n",
    "dr_effect = np.mean(driv_cate)\n",
    "dr_effect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<caption>OLS Regression Results</caption>\n",
       "<tr>\n",
       "  <th>Dep. Variable:</th>            <td>y</td>        <th>  R-squared:         </th> <td>   0.137</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Model:</th>                   <td>OLS</td>       <th>  Adj. R-squared:    </th> <td>   0.136</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Method:</th>             <td>Least Squares</td>  <th>  F-statistic:       </th> <td>   158.2</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Date:</th>             <td>Fri, 07 Jun 2019</td> <th>  Prob (F-statistic):</th> <td>1.14e-309</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Time:</th>                 <td>20:26:29</td>     <th>  Log-Likelihood:    </th> <td> -46632.</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>No. Observations:</th>      <td> 10000</td>      <th>  AIC:               </th> <td>9.329e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Residuals:</th>          <td>  9989</td>      <th>  BIC:               </th> <td>9.336e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Model:</th>              <td>    10</td>      <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Covariance Type:</th>      <td>nonrobust</td>    <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "    <td></td>       <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>const</th> <td>   -5.5660</td> <td>    1.292</td> <td>   -4.309</td> <td> 0.000</td> <td>   -8.098</td> <td>   -3.034</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>x1</th>    <td>   35.0479</td> <td>    0.885</td> <td>   39.615</td> <td> 0.000</td> <td>   33.314</td> <td>   36.782</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>x2</th>    <td>    0.0634</td> <td>    0.883</td> <td>    0.072</td> <td> 0.943</td> <td>   -1.668</td> <td>    1.795</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>x3</th>    <td>   -1.8130</td> <td>    0.883</td> <td>   -2.053</td> <td> 0.040</td> <td>   -3.544</td> <td>   -0.082</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>x4</th>    <td>   -0.4922</td> <td>    0.883</td> <td>   -0.557</td> <td> 0.577</td> <td>   -2.223</td> <td>    1.239</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>x5</th>    <td>   -1.3540</td> <td>    0.883</td> <td>   -1.533</td> <td> 0.125</td> <td>   -3.085</td> <td>    0.377</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>x6</th>    <td>    0.5077</td> <td>    0.883</td> <td>    0.575</td> <td> 0.565</td> <td>   -1.223</td> <td>    2.239</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>x7</th>    <td>    0.6324</td> <td>    0.514</td> <td>    1.231</td> <td> 0.218</td> <td>   -0.374</td> <td>    1.639</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>x8</th>    <td>   -0.1330</td> <td>    0.513</td> <td>   -0.259</td> <td> 0.796</td> <td>   -1.139</td> <td>    0.873</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>x9</th>    <td>    0.3405</td> <td>    0.625</td> <td>    0.545</td> <td> 0.586</td> <td>   -0.885</td> <td>    1.566</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>x10</th>   <td>    0.0426</td> <td>    0.885</td> <td>    0.048</td> <td> 0.962</td> <td>   -1.692</td> <td>    1.777</td>\n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "  <th>Omnibus:</th>       <td>192.935</td> <th>  Durbin-Watson:     </th> <td>   1.978</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Prob(Omnibus):</th> <td> 0.000</td>  <th>  Jarque-Bera (JB):  </th> <td> 107.259</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Skew:</th>          <td> 0.047</td>  <th>  Prob(JB):          </th> <td>5.12e-24</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Kurtosis:</th>      <td> 2.502</td>  <th>  Cond. No.          </th> <td>    11.4</td>\n",
       "</tr>\n",
       "</table><br/><br/>Warnings:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified."
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.summary.Summary'>\n",
       "\"\"\"\n",
       "                            OLS Regression Results                            \n",
       "==============================================================================\n",
       "Dep. Variable:                      y   R-squared:                       0.137\n",
       "Model:                            OLS   Adj. R-squared:                  0.136\n",
       "Method:                 Least Squares   F-statistic:                     158.2\n",
       "Date:                Fri, 07 Jun 2019   Prob (F-statistic):          1.14e-309\n",
       "Time:                        20:26:29   Log-Likelihood:                -46632.\n",
       "No. Observations:               10000   AIC:                         9.329e+04\n",
       "Df Residuals:                    9989   BIC:                         9.336e+04\n",
       "Df Model:                          10                                         \n",
       "Covariance Type:            nonrobust                                         \n",
       "==============================================================================\n",
       "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
       "------------------------------------------------------------------------------\n",
       "const         -5.5660      1.292     -4.309      0.000      -8.098      -3.034\n",
       "x1            35.0479      0.885     39.615      0.000      33.314      36.782\n",
       "x2             0.0634      0.883      0.072      0.943      -1.668       1.795\n",
       "x3            -1.8130      0.883     -2.053      0.040      -3.544      -0.082\n",
       "x4            -0.4922      0.883     -0.557      0.577      -2.223       1.239\n",
       "x5            -1.3540      0.883     -1.533      0.125      -3.085       0.377\n",
       "x6             0.5077      0.883      0.575      0.565      -1.223       2.239\n",
       "x7             0.6324      0.514      1.231      0.218      -0.374       1.639\n",
       "x8            -0.1330      0.513     -0.259      0.796      -1.139       0.873\n",
       "x9             0.3405      0.625      0.545      0.586      -0.885       1.566\n",
       "x10            0.0426      0.885      0.048      0.962      -1.692       1.777\n",
       "==============================================================================\n",
       "Omnibus:                      192.935   Durbin-Watson:                   1.978\n",
       "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              107.259\n",
       "Skew:                           0.047   Prob(JB):                     5.12e-24\n",
       "Kurtosis:                       2.502   Cond. No.                         11.4\n",
       "==============================================================================\n",
       "\n",
       "Warnings:\n",
       "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
       "\"\"\""
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# To get the statsmodel summary we look at the effect_model, which is the pipeline, we then look\n",
    "# at the reg step of the pipeline which is the statsmodel wrapper and then we look\n",
    "# at the model attribute of the statsmodel wrapper and print the summary()\n",
    "dr_cate.effect_model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ATE Estimate: 10.85\n",
      "True ATE: 10.71\n"
     ]
    }
   ],
   "source": [
    "print(\"ATE Estimate: {:.2f}\".format(dr_effect))\n",
    "print(\"True ATE: {:.2f}\".format(np.mean(true_fn(X_pre))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 3.51178355e+01  9.93516195e-02  1.20372976e-01  4.65886192e-02\n",
      "  -2.40943550e-01 -2.89931484e-02 -1.53903712e-01 -6.79011889e-02\n",
      "   8.13619639e-02 -1.64333613e-01]]\n",
      "[-6.69621087]\n"
     ]
    }
   ],
   "source": [
    "lr = LinearRegression().fit(X[:, feature_inds], true_fn(X_pre).reshape(-1, 1))\n",
    "print(lr.coef_)\n",
    "print(lr.intercept_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Coverage of True Projection: 0.97\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# We can also evaluate coverage and create prediction intervals using statsmodels attributes\n",
    "from statsmodels.sandbox.regression.predstd import wls_prediction_std\n",
    "res = dr_cate.effect_model.model\n",
    "predictions = res.get_prediction(PolynomialFeatures(degree=1, include_bias=True).fit_transform(X[:, feature_inds]))\n",
    "frame = predictions.summary_frame(alpha=0.05)\n",
    "pred = frame['mean']\n",
    "iv_l = frame['mean_ci_lower']\n",
    "iv_u = frame['mean_ci_upper']\n",
    "\n",
    "# This is the true CATE functions\n",
    "theta_true = true_fn(X_pre)\n",
    "# This is the true projection of the CATE function on the subspace of linear functions of the\n",
    "# subset of the features used in the projection\n",
    "true_proj = LinearRegression().fit(X[:, feature_inds], theta_true).predict(X[:, feature_inds])\n",
    "\n",
    "# Are we covering the true projection\n",
    "covered = (true_proj <= iv_u) & (true_proj >= iv_l)\n",
    "print(\"Coverage of True Projection: {:.2f}\".format(np.mean(covered)))\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(8,6))\n",
    "\n",
    "ones = X[:, 6] > .5\n",
    "order = np.argsort(X[:, feature_inds[0]])\n",
    "order = order[ones[order]]\n",
    "ax.plot(X[order, feature_inds[0]], np.array(iv_u[order]), 'r--')\n",
    "ax.plot(X[order, feature_inds[0]], iv_l[order], 'r--')\n",
    "ax.plot(X[order, feature_inds[0]], pred[order], 'g--.', label=\"pred1\")\n",
    "#ax.plot(X[order, feature_inds[0]], theta_true[order], 'b-', label=\"True\", alpha=.3)\n",
    "ax.plot(X[order, feature_inds[0]], true_proj[order], 'b-', label=\"TrueProj1\", alpha=.3)\n",
    "\n",
    "ones = X[:, 6] < .5\n",
    "order = np.argsort(X[:, feature_inds[0]])\n",
    "order = order[ones[order]]\n",
    "ax.plot(X[order, feature_inds[0]], iv_u[order], 'r--')\n",
    "ax.plot(X[order, feature_inds[0]], iv_l[order], 'r--')\n",
    "ax.plot(X[order, feature_inds[0]], pred[order], 'g--.', label=\"pred0\")\n",
    "#ax.plot(X[order, feature_inds[0]], theta_true[order], 'b-', label=\"True\", alpha=.3)\n",
    "ax.plot(X[order, feature_inds[0]], true_proj[order], 'b-', label=\"TrueProj0\", alpha=.3)\n",
    "ax.legend(loc='best')\n",
    "plt.show()\n",
    "ax.legend(loc='best')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Lasso Final CATE"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<dr_iv.IntentToTreatDRIV at 0x2b34b1f8ac8>"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lasso_driv_model_effect = lambda: WeightWrapper(Pipeline([('bias', PolynomialFeatures(degree=1, include_bias=True)),\n",
    "                                      ('lasso',  SelectiveLasso(np.arange(1, X.shape[1]+1),\n",
    "                                                                LassoCV(cv=5, n_jobs=-1, fit_intercept=False)))]))\n",
    "dr_cate.refit_final(lasso_driv_model_effect())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEICAYAAABLdt/UAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xl43NV96P/3mX1ftW+WAYNtDLbBxhgbkGxwCKTh4ZfQkuQmcCHlJoTclvbeX/L0tim/hja0D832IzSFkh+kCQ1JbnPT5GEzZmuAADYWslZbuyVLM1pmNDPS7HN+f8xISF6wZI08Ws7refRY850z3+85Y+kzR+ec7+cIKSWKoijKyqEpdAUURVGU/FKBXVEUZYVRgV1RFGWFUYFdURRlhVGBXVEUZYVRgV1RFGWFUYFdURRlhVGBfYURQvQIIaJCiLAQIiiEeEsI8SUhhGZGmaeEEFII8cmTXvvd3PG7co/vEkL87gzXeU0I8UUhRKUQIiWEuPA0ZX4lhHjkDK83CCEeFEIcE0JM5Or9IyFE7Unlnsqdv2LGsR8KISK5r4QQIjnj8fNCiNpcOyInff3RHN/D13Kv33zS8f+TO16Xe+zK1Xko934fFUJ8bUZ5mWvbzDr832e45v8UQjTlztMthPifH1G/jUKIg0KIQO7rZSHExrm0bT6EEHuFEG1CiEkhxKtCiDUznvvD3M/WpBDitXxfW1kYFdhXpj+QUtqBNcDDwNeAJ08qcxS4c+qBEEIH3A50zudCUsoB4ADw+ZnHhRAe4Gbg6TO89JfAJ4HPAk5gM3AI2DvjHFbgU8A48LkZ1/ySlNImpbQBfwc8O/VYSvnxGddwzThuk1I+O4+mHQW+MKMuXuBqYHhGme8ANmBDrg2f5NT3b/NJdfiHM1xP5K7nBm4C7hdC3HGGsieATwMeoAj4D+Bn82jbhxfNfqDWnuZ4EfDvwF/lrnMQmPn+jQHfJfvzpSwxKrCvYFLKcSnlfwB/BNwphNg04+nfALuEEO7c45uARmDoHC71NCcFduAOoFlKeeTkwkKIG4AbgVullO9JKVO5uv5ASjnzA+hTQBD4G2Z8CJ0nPwX+SAihzT3+DPArIDGjzHbgGSllQEqZkVK2SSl/eS4Xk1L+g5Ty/dx70Q78Gth1hrJBKWWPzN42LoA0cNHU80IIoxDiESFEnxDCl/sLxzzPKv1fZP//fiGljAEPApuFEOtzdXhZSvlzsh8yyhKjAvsqIKV8F+gHrp1xOEa2pzfVK/wC8ONzvMSvgCIhxO4Zxz7/Eee7AXhXSnn8LOe9E/g3sr3R9UKIK86xfrMIIT4rhGg8S7ETQAuwL/f4dO/P74G/FUL8VyHEunzULVc/Qfb/qvks5YJk/x//X7J/uUz5e+BiYAvZgF8JfGOe1bgU+GDqgZRyguxfI5fO8zxKAajAvnqcIPsn9Uw/Br4ghHAC1wP/51xOLKWMAr8gN3SRC3JXAs+c4SVeYPCjzimEqAHqyfaIfWSHe+bbax/JzTNMfW3I1fcZKeXlc3j91PtzCdlhnbdPev6rZHv29wMtQogOIcTHTyrz/kl1+Ngcrvsg2d/N/++jCkkpXWSHgO4HDsP0h8IfAw9IKceklGGyQf9MwzpnYiM7BDbTOGCf53mUAtAVugLKeVNJdlx0mpTyd0KIYuAvgd9KKaPZuHBOngZ+I4T472R76y9IKf1nKDtKtkf5UT4PtEopG3KPfwr8oxDif0gpk3OsU5GUMjXHsqfz78A/kq3vv578ZO4D7e+AvxNCOICvA78QQtRIKafe6yuklB1zvaAQ4n6yH5DXSinjZysvpZwQQvwQGJ764AIswKEZ/5cC0ObOX0N2yG2KA2gUQmRyj++TUj4DRHLPcVLZ8FzbohSO6rGvAkKI7WQD++lWuPwE+HPOfRgGACnlf5INgLcC/+Us53sZuEoIUfURZb4AXJBbcTIEfJvsROHJPeJFI6WcBJ4HvsxpAvtJZUNkg7wVWHsu1xNC3E32w2GvlLJ/Hi/VkA3mlcAIEAUulVK6cl/O3EQzUsq+GcddQB9w+YxjU39lNZOd0J6qmxW4kLMMDylLgwrsK5gQwiGE+ATZMeqfnG4iE/g+2YnMN858GmGa+fURl/wx2fFdF9nJ2dOSUr4M7Ad+JYS4UgihE0LYRXZZ5t1CiJ1kg8hVZMeJtwCbyA7tnO9J1L8ArpdS9pz8hBDir4QQ20V26aYJ+BOyk73t872IEOJzZD8YbpRSdp2l7I1CiK1CCG3uL4VvAwGyf+FkgCeA7wghSnLlK+c4BDTTr4BNQohP5dr2DaBRStmWO6c2d1wHaHI/G/p5XkNZJCqwr0y/EUKEgePA/yL7i/9fT1cwNw57QJ45Mf81ZHuA01+5pZGn82Oghuzyw7MNI3waeI7sErpxoAnYRrY3fyfwaynlESnl0NQX8D3gE7mllHMRPGkN+Z9BNogKIebU85RSnpBSnnYtPyDJjoOPkJ3DuBG4RUoZmVHmg5Pq8N0znOshsnMP780o+8OpJ4UQzbngD9kPzn8j+751kp0gvSm3egWyy1s7gN8LIUJk39NL5tLeGe0eJrsq6W/JfmjsYPY4/efJ/jz8E9mJ3ijZDxRlCRBqow1FUZSVRfXYFUVRVhgV2BVFUVYYFdgVRVFWGBXYFUVRVpiC3KBUVFQka2trC3FpRVGUZevQoUMjUsris5UrSGCvra3l4MGDhbi0oijKsiWE6J1LOTUUoyiKssKowK4oirLCzDmw524ZflcI8UHuLrj/J3d8rRDiHZHdCedZIYRh8aqrKIqinM18xtjjwB4pZSSXE+J3QojngT8DviOl/FnuFuh7yN5mPC/JZJL+/n5isdjZC68gJpOJqqoq9HqVZkNRlPyYc2DP5RKZyoGhz31JYA/Z7c0gm7r1Qc4hsPf392O326mtrWUBqWOXFSklo6Oj9Pf3s3btOSUEVBRFOcW8xthzGd0aAD/Z7HydQHBGzut+sqlDT/fae0V2A96Dw8PDpzwfi8Xwer2rJqgDCCHwer2r7q8URVEW17wCu5QyLaXcAlSRTam64XTFzvDax6WU26SU24qLT78MczUF9Smrsc2Koiyuc1oVI6UMAq+R3bXdNSONaxVqc1tFUZSCmvMYe24LtaSUMpjb8fwGspsqvEo2t/bPyOXRzkfFvrP/aD5OM+2BG8+2E9vcPfXUU+zbt4+KigoAHn30Ub773e/S2dnJ8PAwRUVFebuWoijLV+v6i5ndf86woS2/se105tNjLwdeze3u/h6wX0r5W7JJ/f9MCNFBdqOAJ/NfzaXlqaee4sSJD/8w2bVrFy+//DJr1qwpYK0URVlKTg3qAJrc8cU1n1UxjcDW0xzvIjvevuz95Cc/4fvf/z6JRIIdO3bw2GOPcc8993Dw4EGEENx9991UV1dz8OBBPve5z2E2m3n77bfZuvWUt0VRlFUvG9RjWj2mdPKU44upILlilqLW1laeffZZ3nzzTfR6Pffddx8PPfQQAwMDNDU1ARAMBnG5XDz66KM88sgjbNu2rcC1VhRlqUojaPXUcqToAvb0v0/pZOC8XVsF9pwDBw5w6NAhtm/fDkA0GuWmm26iq6uLr371q9xyyy3s27evwLVUFGU5OBGM8vzanYyZLOjMvZhSE+f1+ipXTI6UkjvvvJOGhgYaGhpob2/ne9/7Hh988AF1dXX84Ac/4Itf/GKhq6koyhIWS6Y50Orjh691MmZPovW8i87SSdiemFEqs+j1UD32nL1793LrrbfywAMPUFJSwtjYGOFwGLfbzac+9SkuvPBC7rrrLgDsdjvhcLiwFVYU5byYy8oWKSVHfRFebB6i6cQIE5pWYp8uZuev32P7MSgJnfm1i2HJBvZ8Lk+ci40bN/LQQw+xb98+MpkMer2eb3/729x2221kMtlP2G9961sA3HXXXXzpS1+anjx94okn+Id/+AeGhoa4/PLLufnmm/mXf/mX81p/RVHy76NWtkwF6PHJJAdaffy+e5QTE8dJmz8gLHvQSQMNt30G55qruX77x85rvUU2Bcz5tW3bNnnyRhutra1s2HC6G1lXvtXcdkVZylrXrz/jcxe3tHK4L8D+Fh9Hh0dJG9uY0DQTzYxj15Zi0FgAuK7mKv44T4FdCHFISnnWVRtLtseuKIqyVA2bnPz+7R4O9wYIpvtJWT4glOlFJ814dGsQItvLlxIGxiSpdAad9vxNaarAriiKMkcJjY6G4nUcc1Uz0HEczG1EdC3E0yHs2nL0GtN02WjMyHjIiTUp6BqZ4OJS+3mrpwrsiqKsOnO/1T8DaJBAn72U90o3ENPqcYt2uq2vEEwdx6Cx4dZ9mG48ldISCDnQZKyUuKKUVjZS7r5m8Rs1g1ruqCjKqjKfW/03tB0lrDfyatUV/GflZnRiAo/5d7z52UsIpo/j0JVj0xYhhEBKCIZsjI6V4jBYqajopqj0KBVOO+HE+V1Fp3rsiqKsMmfqz84+ns5IDvUGOPD3P6NzOIzG1E+39jDjKT1GNLi1a6Z76ZMxI6GQE4veRE3ZKHprDxX2Yq6ruo2rK67GqDUucptmU4FdURTlJMfHJnmpZYgPjgeJpkMIezP+VCupdAyHrhJdbmvnZEpLcNyBRtoodyexupqxm2FT0TZuXHMj5bbygtRfDcXkBINBHnvssbyd74033uCKK65Ap9Pxy1/+Mm/nVRRl8UwmUrzYPMQPX+/krU4/KUMHYdNLDCQOocWAS1uDThjIZLLDLmNjpTiMdmqrBnEUNXKBt5jbL7mdz274bMGCOqge+7SpwH7ffffNOp5Op9FqtfM+X01NDU899RSPPPJIvqqoKEpeZCdEZ5JAp7OC51/rpN0XRuiDZOwN9Cc7kEhcuiq0Qo+UMBk1Ego7sRhMXFAeQWs9hsts5crSeuqr63Gb3AVp1UzLN7Af3Q9vfQ+CveBaA9f8CVx84zmf7utf/zqdnZ1s2bIFvV6PzWajvLychoYGnnvuOT7xiU9MZ3l85JFHiEQiPPjgg3R2dvKVr3yF4eFhLBYLTzzxBOvXr6e2thYAjUb9UaQo58NcV7psaDs6q2zAaOPdsg303fPnhAZHMdg78Kc/YDIxhk1bjFGTXaaYTGkJjDvQShtVbonD2wnacda517G3Zi/rPeuXzFaXyzOwH90Pz/8P0BjA5IawL/uYR845uD/88MM0NTXR0NDAa6+9xi233EJTUxNr166lp6fnjK+79957+eEPf8i6det45513uO+++3jllVfOrV2KopyTudz6P9OGtqMkUhne6R7llTY/fWMTmMUAcdv7DCV70WHErVuDRmjJZCAUsRGPOfBY9ZSXjJDUdeOxFLGz4hZ2V+7Gorecl3bO1fIM7G99LxvUDbk302CBRO74AnrtM1111VWsXbv2I8tEIhHeeustbr/99ulj8Xg8L9dXFGU+5rbSZUr3yATPHxmk6cQ4GSbQ2VsYSLWQSEawa8vQa8wAxOIGgiEnFr2ZiysT6G1NaDRprvBu5YY1N1DjqFmk9izM8gzswd5sT30mvRmCfXm7hNVqnf5ep9NNJwIDiMViAGQyGVwuFw0NDXm7rqIoiyeaSPP6UT+vHx3GH45isfcTyBwmlDiBUeOYvtEokxEEQg4ySTvlTg1lJSeYZIBSWxXXVV3H9rLt6DX6QjfnjOY8ACyEqBZCvCqEaBVCNAsh/iR3/EEhxIAQoiH3dfPiVTfHtQaS0dnHklFwnfun50el4i0tLcXv9zM6Oko8Hue3v/0tAA6Hg7Vr1/KLX/wCyKbu/OCDD865DoqiLA4pJe1DYf759U5+dXiA8cQI2N+iL/kykbQfp64Kq9aLEILJqAn/SAkmjYtLqidwlR5GawhxbdW1fPGyL3JNxTVLOqjD/HrsKeDPpZTvCyHswCEhxP7cc9+RUp6/5R/X/El2TD1BtqeejEImkT1+jrxeL7t27WLTpk2YzWZKS0unn9Pr9XzjG99gx44drF27lvUzMr799Kc/5ctf/jIPPfQQyWSSO+64g82bN/Pee+9x2223EQgE+M1vfsNf//Vf09zcvJBWK8qqNLdJ0VNXukwdD8eSvNzi4+2uUcYmJjDYuxhJf0AkMYJVW4RJ4wAgldYQGHeiydio9mSwe9tBE2Gd+yLqq+vZ6N2IRiyPxRDnnLZXCPFr4FFgFxCZT2DPS9re6VUxfdme+gJXxRSSSturKKd3+klROF1wP7msJEPq5Xd5sXmIo0NhdOZhJrWHGU31oEWPTVuCRmiREiKTZiYmXLgsekqLh5CG45Rby9hVuYsd5TuWzOTooqbtFULUAluBd8gG9vuFEF8ADpLt1Z+ya6sQ4l7gXsiu8V6wi29ctoFcUZS5mvuk6MxAH5hI8FKLj3fe6mE8FkJra8WXbiWeDGGbkSs9mdISCDrRCyvVxZOYHM3YzSY2F++mrrqOMmvZYjRq0c07sAshbMD/Bv5UShkSQvwT8E2ya/y/CfwjcPfJr5NSPg48Dtke+0IqrSiKcjqZjOT9vgAvtQzRORxGb+4namlgPDmAUWOfnhyVEkIRK7GoE7dV4PJ2YjaHuSg37LLBu2HZDLuczrwCuxBCTzao/1RK+e8AUkrfjOefAH6b1xoqiqLMgT8c44WmIQ71BggnR8HWxGDqKOl0clZ+l3hCT2DchUlnorLUj8l2nCpHGbsq97KjfAdmnbnALVm4OQd2kb2l6kmgVUr57RnHy6WUg7mHtwFN+a2ioiir15knRaek0hne7R7j5VYfPWMhtJZOItpGIslhLBovdo1jegljMGQnlbRTZE9gcTdSajexuWQ3dVV1lFpLT3Od5Wk+PfZdwOeBI0KIqYXbfwF8RgixhexQTA/w3/JaQ0VRVpxzvf3/5LKD41GeOzLI4b4gE5lB0tZGhtPdCLTTd47CVFpdFzajgdLy41htI1ziWUd9TT0bPRuXTCqAfJlzYJdS/g44Xeufy191FEVZ6c7l9v+TJVIZ3uoc4ZU2P8eDYwhzOyFaiKZmbySdSmsIhhyQtlHmjmJ2tlDmcLCz/Caur75+yax2ybcle+fpYw35S6ELcN+W+85eaI6eeuop9u3bR0VFBQDd3d3ccccdjI2NccUVV/Cv//qvGAyGvF1PUVaW+d3+f7K+0UmebxqkoS9AVNNLwnqE8dRxDBrr9EbSM5cwOi063KU9WKxB1nsu4cY1N3Kh68IV10ufaflO+xbQU089xYkTJ6Yff+1rX+OBBx7g2LFjuN1unnzyyQLWTlFWplgyzf4WXzZXek8Pk8a3COpfJZTuz21RV4wQGpJJLcOjHlKxIqqK4xSVv0+lFz5xwS3ctekuLnJftKKDOizhHnsh/OQnP+H73/8+iUSCHTt28Nhjj3HPPfdw8OBBhBDcfffdVFdXc/DgQT73uc9hNpt5++23eeWVV3jmmWcAuPPOO3nwwQf58pe/XODWKMrKIKWkwx/hheYhmgYCxLTHiFmaiKR9mDQubNqSGUsYbcSiDrxWLa7iToymCBs8l7Kvdh9rnR+d1G8lUYE9p7W1lWeffZY333wTvV7Pfffdx0MPPcTAwMB0HvZgMIjL5eLRRx/lkUceYdu2bYyMjOByudDpsm9lVVUVAwMDhWyKohTEXCdE57LSZcrYRIJX2/y80z3K4MQg0vwBIdmFzIBTV41WZH/vEkkdgaALk85Cbfk4OksHZfYirq38JNdUXnPe9xwtNBXYcw4cOMChQ4fYvn07ANFolJtuuomuri6++tWvcsstt7Bv375TXne6lAwr/c88RTnZfCZEz7bSBbKTo+92j/Fqu5+u0VEyxmNEzU1MZgLYtCUYNTaA2b10m8Bd1I7JHONS72b2rdlHtaN6Udq71KnAniOl5M477+Rb3/rWrON/+7d/y4svvsgPfvADfv7zn/OjH/1o1vNFRUUEg0FSqRQ6nY7+/v7pSVVFWT3mNyF6+p589vfwmD/CS81DNJ8IMkEPSUsz4cxxdNKMR1eLyN0ROtVLN+rMVJcNY7T1UeUoZ3flTVxdfjUG7epdwKACe87evXu59dZbeeCBBygpKWFsbIxwOIzb7eZTn/oUF154IXfddRcwO8WvEIL6+np++ctfcscdd/D0009z6623FrAlirI8jUbiHGjz8173GL5JH9LSRDjTSSoTx64tRyeywykze+luWwq79wjFNgOXF1/Dnpo9K+pGo3O1ZAN7PpcnzsXGjRt56KGH2LdvH5lMBr1ez7e//W1uu+226U02pnrzd911F1/60pemJ0///u//njvuuIO//Mu/ZOvWrdxzzz3nte6KspzFU2ne6RrjtXY/3WMBpOkYk+YmJtNjWDRebJrS6eHNRFJHYNyFUWuitOQ4DucoF3suoL66nk1Fm5Z1fpd8Oue0vQuRl7S9K8hqbruytM11QnQ+6XWnSClp94XZ3+KjeWCcmKaXhLGJUPo4WozYtMXTd47OTNrltE1g83RS6/ZwdfnV7K7ajVVvPe01VppFTdurKMrKl+8J0ZnGJ5O83Orj912jDE/6kZZmxmUHqXQUm6YMvcY0XTYaMzAedmLUafEWd1LmSbC5ZCt7avYs2T1HC00FdkVRziA/E6IzZTKSw8eD7G8Z4qg/gDQeY8LSxGR6BLPGM70mHbK50oMhB2QsOO0jOFz9bCip5vqq69launXJb09XSCqwK4pyXgyH47zYPMR73aMEUn2kLEcIZfrQZvS4ZiTsymQE42EbibgdmyWOxdXEGo+FbWX11FXX4T55I3vlFCqwK4qyqFLpDO90j3Gg1UfnmI+MqZmI4RiJdAS7tgy9Jpv/XEqYiJqJRBxYDDpKSrvxOCNsLLqEPTV7WOdap+4RmSMV2BVFOYO53yF6Jv2BSZ5vGqKhb5SgPErS3EQk48OsceLW1k4H6nhcTzDsQK8xU+wdxWrv5QJPBbsr93FV+VWr7s7RhVKBXVFWoblMdM53QnSmWDLNmx0jvNrmpyfUS9rUxATdSAkuXRVakR0fT6U1BMcdyLQNrz2OyXmEMqeRLSW72VO9h2JL8YLbuhqpwJ4TDAZ55plnuO++/Kyfj8fjfOELX+DQoUN4vV6effZZamtr83JuRVmI+a52ma8Of4QXmgZpGPAxoWkmbmojJoOnSQVgJRp14rRocLp7sFrHudiT3XN0o3flbX5xPqnV/DnBYJDHHjs1B3w6nT6n8z355JO43W46Ojp44IEH+NrXvrbQKipKniwsH/qZhGJJfvPBAE+80cHvjr9PyPASIe27SJHCo6udDurxhB7fSDGkvFSXjFNUdpjaYh23rvsD7t50N5cWXaqC+gIt2x57+I03GHvyRyT7+9FXVeG5527s1113zuf7+te/TmdnJ1u2bEGv12Oz2SgvL6ehoYHnnnuOT3ziE9NZHh955BEikQgPPvggnZ2dfOUrX2F4eBiLxcITTzzB+vXr+fWvf82DDz4IwKc//Wnuv/9+pJTqB1ZZcVLpDO/3BXmlzUebv59JfSNxUxdp4jh0H6YCmL3naBKb5wgeq5bLiq5iT80eKmwqx1K+zGcz62rgx0AZ2dmTx6WU3xNCeIBngVqye57+oZQykP+qfij8xhv4/uabCIMBjdNJangY3998E77xV+cc3B9++GGamppoaGjgtdde45ZbbqGpqYm1a9fS09Nzxtfde++9/PCHP2TdunW888473HfffbzyyisMDAxQXZ3NLKfT6XA6nYyOjlJUVHRO9VOUpahnZIL9rT4a+oYZybSQMrcQzYxgEV7suVQAUsJkzEQ47MRm1FNS3ovNFuBC11rqquu4rOgytBptoZuyosynx54C/lxK+b4Qwg4cEkLsB+4CDkgpHxZCfB34OrCo4w5jT/4oG9TN2WVSwmwmkzu+kF77TFdddRVr1350Yv5IJMJbb73F7bffPn0sHo8DKp2vUhhzm+xc+GqX8WiS19v9vNUxwvGJHlLGJiZ1PWikftYm0smUlsC4Aw1Wij1jWB29VLuKuKbiD9hZsXPVpAI43+azmfUgMJj7PiyEaAUqgVuBulyxp4HXWOTAnuzvR+N0zjomTCaS/f15u4bV+uEPnE6nm04EBhCLxQDIZDK4XC4aGhpOeX1VVRXHjx+nqqqKVCrF+Pg4Ho8nb/VTlJPNdVJ0IatdUukMB3sDvNLm59jwMHF9M1FzO4lMCJvmw02kZ06OOixJbO5mylw6Li/eQX11vRp2WWTnNMYuhKgFtgLvAKW5oI+UclAIUXKG19wL3AtQU7Ow/A76qipSw8OIXI8dQMZi6KuqzvmcM1Pxnqy0tBS/38/o6Cg2m43f/va33HTTTTgcDtauXcsvfvELbr/9dqSUNDY2snnzZj75yU/y9NNPs3PnTn75y1+yZ88e1WNXFtncJ0XPZbVL13CEl1t9NB4PEJSduTXpAxix485tIg3ZydHAuAuTTk9x8XHcriDrvRdyfdX1KgPjeTLvwC6EsAH/G/hTKWVorsFKSvk48DhkszvO97ozee65G9/ffJMM2Z66jMWQiQSee+4+53N6vV527drFpk2bMJvNlJZ+mNNZr9fzjW98gx07drB27VrWr18//dxPf/pTvvzlL/PQQw+RTCa544472Lx5M/fccw+f//znueiii/B4PPzsZz9bSJMVpWDGJ5O81u7n7a5RTkR8ZMyNhGUnaZnEoatEJ7IbWkxNjiaTNpz2IHZXLxd6Srim8pNcXX41Fr2lwC1ZPeaVtlcIoQd+C7wopfx27lg7UJfrrZcDr0kpL/mo8+QjbW++V8UUkkrbq+RD64wOx8k2tLXN+3zZhF0B9rf4OOYPkDZ2MKE9wkR6BKvWi1E4TpkcNRsz2FwdVHv1bCm5nPqaesqsZQtpljJD3tP2imzX/EmgdSqo5/wHcCfwcO7fX8+zrufEft11yzaQK8riWPik6BRfKMYLTUMc6h0jmBogbWkklOlBk5k9OZpKaRnLTY563EO43ENcXnIxddV1bPBuUMMuBTKfoZhdwOeBI0KIqdnCvyAb0H8uhLgH6ANuP8PrFUU5R4udAmBKIpXhrc5sKoDe4CiY24hoW4mnQ9i0p58cdVoyWN1NVHvM7KzYR311vRp2KbD5rIr5HXCmAfW9+ajMaryBpxA7WCnLy2KnAJjSNRzhhaaDvRFEAAAgAElEQVQhjgwEmBTdxC1HCKcHMGrsuHUzEnblJkfNOjOVpX7Mtj4u8V7Ivtp9bPBsWHW/w0vRkrnz1GQyMTo6itfrXTU/GFJKRkdHMZlMZy+srGKLkwJgykQ8xavtfn53bITByBAZSxOhTAfpzOknR1NJOyV2ic3TjNuq4crS69hXuw+n0XmWKynny5IJ7FVVVfT39zM8PFzoqpxXJpOJqgUs01SUcyWlpGkgxIvNQ7QPjZEwHGPS8tGTo3ajiTVVIwhTNzWOKvbW7OWK0ivUWPoSs2QCu16vP+udnoqi5Ic/HONAi493e8YYiR8nY2kklOk9ZXJ06s5RLTZqvBKbpw2tLsaW4u3ctPYmSiynvW1FKbAlE9gVZbU6+4Rn/la7xJJp3u4c5bX27ORoxtjKhKnttJOj42Eb8ZgDt1VPdWmAuK4Dr6WYuuqb2FmxU+05uoSpwK4oBTSXidF8rHaRUtJ8IsSBVh8tg+PEND3ELY3ZydGT7hyNxoyMh5xY9CYurkhhdR4jJkNs8mzi42s/To1jYXeOK4tPBXZFKai5TYwuZLWLLxTj5RYfh/oCjEVHwXKE8cwxUpn4rMnRVEpDIOREZKxUeTSUFg8xQT9mg5c95TdzXfV1mHXms1xNWQpUYFeUFSqaSPNW5wivHx1mIBhBa+4hamkgnPZh0XiwzUirm12T7sBtMVBdGiZt6EDqDGz3bqe+up5qR3Whm6PMgwrsirLCZDLZYZf9LUMc9YfJaMdI2z5gONWBlODW1aAR2V/9WNxAMOTErDOzrjyFxdlOUkZY61S50pczFdgVpaDyNzEKMBqJ51IBBAjHo+htHYykG5hMjs3aczSd1hAI2ZEpO2UODWUlg8TEAA5TMddU1Ktc6cucCuyKskjOVxoAyPbS3+8L8GLzEF0jESyWUeLWQwwme9BinF7CKCVMRM1EIk6cZiNVlSEyxg50OjNXF1+tcqWvECqwK8oiOF9pACDbS3++aYj3esaYTE6gt7cxkGoingxh15ah12QnPJMpLYGgE72wUluUxuZpQ2omWee6kLqqOi4tulTdaLRCqMCuKIticdMAQLaXfijXS+8eiWC2+pjUHSKYOI5BY5vO7zI1ORqLOnFbdZSUnEDqT1BsLWdnxY3sKN+hknatMCqwK8oyNJIbS3+vZ4xoKoLO0cJAspmEnMChK0cnjMDshF21ZSF0tg4cZhubi6/l+qrrKbWWnuVKynKkAruiLCOZjORgb4CXmofoHo1gsp4gon+f8Xg/Ro0Dt3YNQoiTEnZlcHjbMJvirHOvp766nkvcl6yaZHurkQrsirIo8rvaBbL5XV5oGuJQT4DJdAiNvYmBVCspGZt1o9Fk1Ego7MJmNFJe3o/ROkSNo4rdlbvZVrYNo9Z4znVQlgcV2BVlEeRrtQvk8rt0jfJam5/+4ARGSz8T+sOMJ05g0riwaUsQQuSWMDogbaPUHcbiaqbM7uTK0hu4tupaPCZP3tqnLG0qsCvKIlnoahcpJW1DYfa3+GgZDIEmjLA3ciLZTooETl0VWqHPLmGcNBGOuLCbNTiKj+J1JtnovZz66nrWOteqYZdVRgV2RVmCRiJxDrT6eK97jGB0EoO9h9FMI+HE7HQAqbSGQNCJBisl3lFszj4u9FRRV1XH1tKtKgPjKjWfzax/BHwC8EspN+WOPQj8MTC1O8ZfSCmfy3clFWW1iKfSvNM1xqvtfvrGJjCafSRsH+BL9iLQTacDkBLCE2YmJlw4LGB3t1Dq0nJF6S5uqLkBr9lb6KYoBTSfHvtTwKPAj086/h0p5SN5q5GirEJSSo76IuxvGaL5RIi0GEdjb2Ew1U4iOXHaG410wkJpkR+bs591nlr21uzl8uLL1U1Gyrw2s35DCFG7eFVRlNVpNBLnlTY/73aPMTY5icHWSVA2EkkMY9a4Z91oFJ6wMjnpxGVNY3U3UeEycmVpHXtr9uIyuQrdFGWJyMcY+/1CiC8AB4E/l1IG8nBORVnx4qk0v+8a4/V2P71jExhMQyRsjfhSvWhmDLtA9kaj4LgTg9ZMWfEgducgF3su4MY1N7LRu1FNjiqzLDSw/xPwTUDm/v1H4O7TFRRC3AvcC1BTo3ZgUVYvKSUtgyEOtPppHQyRESE09maGUu0kkpPYtaXTwy7ptCAYdpBJ2vDaE5idjVS4LFxVfgP11fXYDfYCt0ZZihYU2KWUvqnvhRBPAL/9iLKPA48DbNu2TS7kuoqyXPlDMV5u9XGoN8B4NIrR1s2YzK52yQ67rJkedpmYNBOZcGI36XGV92K1jXGJZx03rrmRi90Xq166ckYLCuxCiHIp5WDu4W1A08KrpCgrTzSR5s2OEd44Nkx/cBKrZZSk7TC+VA8C7axhl0RSR2DciUFjoaIohNF+hEqHl50Vt7C7crdK2KWc1XyWO/4bUAcUCSH6gb8G6oQQW8gOxfQA/20R6qgoy1YmI2kcGOeVVh/tvjBa3SQGewsDqVbiyTA2bSkGjSVX9sP8Ll6rxO5px25NcKl3CzesuUFtIq3M2XxWxXzmNIefzGNdFGVF8YdiPNc0SENfkIlEHLO9D3+6gXBiKJuwa8Zql8momXDEgc1opLLCh85ynBpHJddVXcf2su3qRiNlXtSdp4qSZ+mM5N3uMV5qGeL42CQ2a4CU4TDdiS6A6VQAkF2THhx3osVKlTeOyfkBLouRLSW72VuzlyJzUSGboixTKrArSh4Nh+M8f2SQg71jxNOT6B1tHE82EU2NY9OWYtRk9xGd2vwiGnXisejwFveiM41wgfMC9tTsYVPRJnWjkXLOVGBXlDyYypP+YvMQPaNhTNYBwoYGxuP9GDQ2PLpaRC5QZze/cGLWWagtC6G3dVBscXFV+ce4ruo6tYRRWTAV2BVlgWbuORpJjSLtTfQnj5ImMStPeiYjGA/bSCYclNjB6WnHZI6x3n0pN6y5QWVhVPJGBXZFOUeZjOTw8QAvNA3RORJEa+4kbDpCJDGMVevFKMqmA3U0ZmQ87MSmN1NR7kdn7aXKXs7uypu4uvxqDFpDgVujrCQqsCvKOQhMJHi+aZB3ukYJpgZIWxoZz/SgSetx69agEVqAWZtflLmS2FyNOCxaNhfvZG/NXrXnqLIoVGBXlHlIZySH+wLsb/HRPuwnY2ohYmwnng7NWpM+fedoxInDYqCo9Dh6i58LnLXU19RzedHlaDXaArdGWalUYFeUORoaj/FC8yDv944xkjpG2txEJHMCo7BPr0kHSCa1BMad6IWVqqIJjM5mSmwOtpfdyPXV1+MwOArcEmWlU4FdUc4inkrzVucor7b56Q4OkDY1MWHoJC2TsyZHpYTxsI14zIHbKnB5OzBbJljvWc8NNTdwoetCNTmqnBcqsCvKR+jwR3ihaZAjAyNENO3Ezc1MZkawaoswCvt0oI7FDQRDTsw6E9Vlw+itvdQ4KthdtY8d5Tswao0FbomymqjAriinEY4lea3dz38eG6F/opuMqYkIvWjlyZOjgkDIgUzZKXEmsLiO4LXq2Vy8iz01e9TkqFIQKrArygxTSbteah6i1ecnrj9C1HyURCZ86uRoNDc5atLjKenDZB3lIvcF1FXXcVnRZerOUaVgVGBXlJzhcJyXmod4r2cUX+IoaXMTE5kTGDnz5GiFdxyTs5Nyu4ed5Tezq3IXNoOtwC1RVjsV2JVVL5nO8G73GC+3+ugY6ydlPMKEsZOMTOHUVaI96c7RRNyBy5rB7mnDbUuxUaXVVZYYFdiVVa1vdJIXmgc53DdMkBaS5tbs5KimCJMmuyzxw2EXB1ajgZLyQUzWE9S6qqmrqmNr6VaVVldZUlRgV1alaCLN60eHeeOon95wD2nTESboQXPS5GgioSMQcmIQFio8EYzOFkptdq4o3UNddR1uk7vALVGUU6nArqwqUkrahsK80DRE86CPSW0zMVMbcTn7ztHsJtJ20lO7GXmPYjPHuMSzgT01e7jIdZFak64sWSqwK6tGcDLBgVY/b3WOMBjtIG0+QiTTj0FYcWvXIIQGKSEyaWEi4sBuNlBUMYjOMkC1vYJrq25me9l2tSZdWfJUYFdWvHRG8n5fgP0tQ7QP+0gaGpk0HSMlYzh05ehENlDHE3qC406MWgvVJRMY7M14LVa2lFxHfU292s1IWTbms5n1j4BPAH4p5abcMQ/wLFBLdjPrP5RSBvJfTUU5NyeCUV5sHuJw3xgjqTaS5iYm5BBm4camKZnec3Q8bCMRc1LsAIfnGEZjhHWeddRX17PBs0ENuyjLynx67E8BjwI/nnHs68ABKeXDQoiv5x5/LX/VU5RzE02k+V3HCK8f9dMbPEHK3MiEoRMpJS5t9fSeo4mkjrGgC7POTE35CHpbLxW2UnZV7OXqiqsx68wFbomizN+cA7uU8g0hRO1Jh28F6nLfPw28hgrsSgFJKWkZDPFSs4/WoVEmNe3ELFP5XYoxaey5ctk9R2NRJx5bGrv3CF6bns3F11BfU0+ZtazALVGUc7fQMfZSKeUggJRyUAhRcqaCQoh7gXsBamrUjRxK/o1E4hxo9fFu9xj+aD8ZSyOhTA8aqZu1hDGZ0jIWdGHUmikt6cfhHGad+wLqa+pVKgBlRThvk6dSyseBxwG2bdsmz9d1lZUvmc7wTtcYr7T56B4LkDG1MWluJpoOYteWzcrvEpmwMDHpwmGdxO5poNbt5uqKm9lduVulAlBWjIUGdp8QojzXWy8H/PmolKLMVddwhBebhzjSH2RSDJC0fsB4ug+dNOPR1SJyve9USsPYuAutMOD2dlHhjXF5yWb2rtnLGseaArdCUfJroYH9P4A7gYdz//56wTVSlDmYiKd4pc3Pmx0jDEUCaCwthGQb8VQEu7YMvcYEfLhFXXjCicUSwO1pZ2NpJddX/wFXll6pUgEoK9J8ljv+G9mJ0iIhRD/w12QD+s+FEPcAfcDti1FJRZkydefo80cGaRsMkTEeJ249TCg1gFHjwK1bM700MZHUERh3otWAw32Ui8oM7Ki4nvqaejwmT4FboiiLZz6rYj5zhqf25qkuivKRwrEkL7f4eKtzlOFJP8LaSiDTTiodn7VFXSYDoYiNWMyBxerD4/GxrfJi9q7ZyyXuS9SadGXFU3eeKkuelJLmEyGebxqkbWiUlPEok5YWJlMjmDUebNrS6WAdjRkYD7kwGSSekhYuKrFyXdXNXFt1LRa9pcAtUZTzQwV2ZUkbj2Z76W92+BmKd5AxtxCR/WgzRlyztqjT5Laos+J0DuF2+9hafgn71uzjIvdFBW6FopxfKrArS5KUksb+cV5oHqLJ10PC0ETM2E1axrFpSmdNjkYmzUxMuLCZU1iLmlhbZGNX5ce5ruo61UtXViUV2JUlJziZ4MVmH2929nMi0Uja1E5cBrBqvBhF6SmTo3qNmWLvIE6Xj03FF7Ovdp9Kq6usaiqwK0tGKp3hUG+Al1uHaBxpJK5vJmkYRI951p2jU1vUJeMOXLYEVtcRqtxWdlZ8jLrqOtVLV1Y9FdiVgpNS0jk8wYFWH+/1d+BPHyJjOA6aFA7th2l1pYTJqIlwxInVqKekfACzzc8Gb7aXvs61TvXSFQUV2JUCG5tI8Gqbn7e6TtA9eZikvp20ITArYRdkh12C4w50wkqpJ4jZ0UWl08P2smwv3aq3FrAVirK0qMCuFEQ8leadrjFebfPRFmgjqjtC0jiAXphwaj9MBTBz2MVpTWJ1N1PsEFxadCV11XUqHYCinIYK7Mp5NZVW90Crn8YT/QRoIGXsIiUmsWtmpwKYHnYx6PCU9eFwBFjnvoDrq67nsqLL0Gq0BW6NoixNKrAr540vFOPlFh8He4c5EWshaWwlJrK7Gdk1s1MBBMcdaIWFYs8oVkcfa1wl7Kz8JDvLd6rJUUU5CxXYlUUXT6V5q2OUV9v9dAV7SRiOEDV2gwCXtgatyP4YZjIwHrGTiDlwWmNYXEeodJvYXLKL66uuV5tfKMocqcCuLKoOf4QXmgZpHBgmrGkibm4llhnHpi3GqPkw//lUKgCzQUdJaRde5yTri9ZRV1XHes96tdpFUeZBBXZlUYRjSV5r9/Ofx0Y4PtFBxnyECXkcnbTg0a2ZnhxNp0UuFYAdr3Mcq6uLdUUVXFd5M1eWXYlRayxwSxRl+VGBXcmrqVQALzYP0eobIqY/QtR0lKScxKEtQydm5EmPmolEnNjNGuzFRyl2pthauoN9a/ZRbCkucEsUZflSgV3Jm5FInJeah3ivexRfop2kuYnJzCAm4cQ2Y3I0mdJmUwFgpcw7htnZzYXuKvbU7OGKkivUahdFWSAV2JUFS6UzvNs9xoE2P8dG+0kajzBh7EDKNE5dFVqR3aVISghFrMSiTlxWsHva8NozbC25hhtrb6TIXFTglijKyqACu7Igx8cmeaFpiMPHRwhkWkiam5nMjGDVFGHSOKbLxeN6giEXJp2ZqtJhjPZe1jqrqa+pV710RckzFdiVczKZSPHG0RHeODpMX7iXlKmRCN1opO6UhF2BkJ1M0k6xPYPN04zLKthSrHrpirJY8hLYhRA9QBhIAykp5bZ8nFdZeqSUNA2E2N8yRMvQCJPaJmKmNmIyiF1bikFjzZWDyZiJcNiJzWikpGIQnWWANc5q9lTvYWvJVtVLV5RFks8ee72UciSP51OWmOFwnP0tQ7zXPYY/0UHK1ERE9qPHgkf3YX6X7OSoAx02KryTmBwtFFmtbC65lj01e1QvXVEWmRqKUc4qkcrw+65RXm3z0xUYJGlsYtLYQUrGTkmrG4pYiUaduCwCl7cDq3WCi90XU19dr240UpTzJF+BXQIvCSEk8M9SysdPLiCEuBe4F6CmpiZPl1UW01Se9Jeah2jsHyUs2kmYW5jI+LAIDzZNyXSgjif0BMZdmHQmKkv8mO3HqXaWs7tyH1eVXYVJZypwaxRl9chXYN8lpTwhhCgB9gsh2qSUb8wskAv2jwNs27ZN5um6yiIZjyZ5tc3P250jDEwcJ21qJEIPQmpw62rQTOd3EQRDdlJJO157DKurkTKHmc0l11JfXa9uNFKUAshLYJdSnsj96xdC/Aq4Cnjjo1+lLEWZjOTw8SD7W4Y46h8haWhhMpff5ZTJ0endjHQUlXbjdIZZ71HDLopSaAsO7EIIK6CRUoZz3+8D/mbBNVPOu+FwnBebh3ive4TRVBcpSxPhdD8GrLMmR2en1R3B6uxjrbuc3ZU3qmEXRVkC8tFjLwV+leud6YBnpJQv5OG8ynkydefoy60+OsYGSRubiBiOkc7Eceg+nByd2s0oEXfgtCawupsodxnZWnItddV1lFhKCtwSRVEgD4FdStkFbM5DXZQCGAhGef7IIO/3jRDMtJE0NzOR8WMRHuyaUoQQSAnRmIlQ2InFoKe8rA+7fYxLvBexp2YPGz0b1bCLoiwharnjKjW9+UWbn67xHlLGRiZ0p06OTq1J10obJe5xzM4malxFXFPxB1xTcY3azUhRliAV2Feh7pEJnj8ySEO/j5CmiYSpjbgcx6YpmTU5Oh62EY85cFgkDk8bHnuay4qvZG/NXqrsVQVuhaIoZ6IC+yqSze8yzGvtfnojR0kZm5gU/RiEBbf2w80vpncz0hupKD2BxT7IBa41XF99PVtLtqLTqB8bRVnK1G/oKpDOSBqOB3ilzU+Lb5AJ7QfETR2kic66c3TmbkYlrihmVwPldjtXlu6lrroOl8lV4JYoijIXKrCvYFJKukYmeKXVT2P/GMOpVpLGZqLSh1m4sefuHM2uSTcTjjhxmPQ4S7qx28bZ4F3Pnpo9rHOtU5OjirKMqMC+Qo1E4rzePsw73aMMTgySMn3ApLYLCbh0NWhnTY460WGl3BvG5DhClbOIaytv5ZrKa9Seo4qyDKnAvsJEE2l+3zXK60eH6QsESRvbmTQ3Ec0EsGlLMGpsQHZyNByxMhl14rZocBV1YrVE2FS0mX1r9lHtqC5wSxRFOVcqsK8Q6YyksT/Iq21+2ofCJLWDxK0NjKd70Unj7DtHE7pcwi4La0rH0dmOUWkv4frq27i6/GoMWkOBW6MoykKowL4C9IxMcKDNR2P/OJF4BI2thWC6hXgqjF1bhl5jBiCTgfGwnWTcQZFd4PQexWSa5LKireyr3aeWMCrKCqEC+zI2EU/xSpuPNztGGY5EMVtPENW9z3hyAKPGgVtXOz3pORk1Eoo4serNVFWOoTF3Umkv47qqm7i6/Gr0Wn2BW6MoSr6owL4MSSlp94V5rnGQtqEwRtMEGkcD/YmjpIjj0FWiE9nhlFRKQyDkRJOxUunKYPO0YDQkuaz4Sj625mOU28oL3BpFUfJNBfZlJhJP8Uqrj991jDA6EcXi6MWfPkw47sOi8WKbkd8lu5uRA5dFT2nxENJwnAp7BXVVdWwv345eo3rpirISqcC+TEgpaRsK8/yRQVoHQ+hMw6RsDfQkehDMzu8Si+sJhlyYdWYuKJ1AZ2/GbjJxedEu9tTsodRaWuDWKIqymFRgXwYi8RQvt/h4s2OEkckAOlsbvnQr8WQYm7YUgyabiCudFgRDDjIpO2V2cBZ1oDWEuMh1EXVVdVxadCma3MoYRVFWrmUZ2FvXXwzMDFAZNrQdzevr5lp2MctJoNtRRttD/0zLYABM3UQtjYSTPowaB9968Hfo0CCBTmcl7xev48inrqG0zI8w9lJiK2ZXxSfZWbGT3su20F6gti/GOQtVbr5lFaUQhJTnf/vRbdu2yYMHD57Ta0/9pZry0b9c83ndXMsuZrlJnZF3yjYyYCvGoBuk44+uJJjpBsCuLeUv/vJnaNAQMNp4r3QjfosLZ2oEvaUF3/0f47Kiy9hTs4cKW0VB274Y5yxUufmWVZR8E0IcklJuO1u5ZdhjP9NQwtmGGObzurmWzX+56d53ySVEDRnM5gakaZTRtG3WnaMpjYHGogs56q5BK5OUcZjxklFSEj6z/jNcVnQZWo12ntdfjDYtxjkLVW6+ZRWlMJZhYF+5AkYb75ZuxG9xIq396M1daDNJNvZIOnJ3jkoJE1Ezv7lgNzGtgaJ0Fwl3LwFjmuoRyeYuyZaSLYVuiqIoBZSXwC6EuAn4HqAF/kVK+XA+zrtaJFIZ3uke5cXanSSNEbT2gxjFOFWjki1dEkschNCQSOoIjDsxCAsG2YBT30qgOIotBtc1ZSgLFroliqIsBQsO7EIILfAD4EagH3hPCPEfUsqWhZ779DKcaYwzf6+ba9mFl+scjvBi0xANA0N4XW0YjEM4J9Ns7cxQHsiWimk0jAUdpBJ2imxaPEXHSRUfYlwruLRPsv64RCtnXutc25OfNi3+OQtVbr5lFaUw8jEweBXQIaXsklImgJ8Bt+bhvKeVnaA69RfzbBNX83ndXMsupFxEb+Dov73KP7/ewRt9BwnoXqLx5ho29STY9342qEugw1HG1776pxiFmwsrJ3CXH8Jtj3Pp//oWH3s/xaV9s4P6QtqzGG1fjHMWqtx8yypKoSx4VYwQ4tPATVLKL+Yefx7YIaW8/6Ry9wL3AtTU1FzZ29u7oOsuV+mM5HBfgJdbfbT4+4jpG4lru0mTwK4tm97NaOawS6k7jdXdiVYb5RLPJeyt2ctFrovU5heKssqcz1Uxp4sup3xaSCkfBx6H7HLHPFx32RkIRnmxeYj3e3340k2kTa3E5BhWjRejKJtOBRAM5TIw2rSUlAyR0vVTZitnd+VN7CjfoTa/UBTlI+UjsPcDM3dlqAJO5OG8K0Y0keY/jw3zerufrvBREoYm4oZ+tBhx69agEdllifGEnsC4C6veQm1VBGE+htlg4vLia1QqAEVR5iwfgf09YJ0QYi0wANwBfDYP5132pJQ0nwjxUvMQTUMDhLUNJExdpIlh05Si15hy5WA8bCMRc1Lq0OAt7gRdkAtcF1BfXc+mok0qFYCiKHO24MAupUwJIe4HXiS73PFHUsrmBddsmRsOx9nfMsR7PaMMxlpImZqZlEOzNpGG3Fh60IVZZ2FtxThayzHcVi9Xl3+ca6uuxaq3FrgliqIsN3lZxy6lfA54Lh/nWu4SqQy/7xrl1TY/HYF+EsZGoqbO/7+9e4tt+7oPOP79kZTE+00iLVkSJSd1XDuGETuuE9dpdbEwdMGQbEAxdEDXDQvatUP70r4UzUuxvhXrCgwotvVh2FagW7c9bEbXom08B93aOo3axJYs+SJbki1bd1EUJerCy9kD/3Yk27HoiBeT+n0AQaR48Ofvpz/5w5/nHJ6DwRB0tGOX/FK5d5fVXVsN0OgVQk1XcLrWOBg+Ql9HH/sC+yqciVKqWuk3T4vEGJOfk35pmoGJeZZkmA3XJVK5OTy2Jpw2/7226YydhcUgDTYP7XvmqPeN0eZr4SVrNyPdc1QptRNa2IsgkUpz9vI052/MM7kyQcZ5gSSj2Ixjy+CoMbC84mYlFSTkMQQahwh5DUciL9DX0Uezp7nCmSilaoEW9h1IZ3P0j8U5d2Waa7MLZBsuk3JdYi2XwGuPUm97r388nbYTTwRw2Ny0RGbw+Cd4KhSjp72Ho9GjmxbsUkqpndHC/gFdn13mjaFpLk4ssmImSLsvspgbp844CTk6EGsWy90ZL+trfgKeDJ7QAK1BF8f2dNMb6yXkDFU4E6VUrdHC/pgWUxucuzzD+RvzTK/EEfcwS+Yy69kkPnszdTbXvbZr6/UsLgVwORrYE72JP7DAhxs/xOnYaQ6GD+o3R5VSJaGFvUDpbI63xxY4d3mG0bllcI6x5rlAMjNJg81PyNF5r1Bnc8JiIr9FXWNgCU9gmI5QIyf3/h6n9p7CXeeucDZKqVqmhX0b+dkuK/xsaIrB20usmXmy3ovEMyPkslkCjrYtUxhTqy6Sy368ThvepqtEAxmORI/RG+ul3de+zbMppdTOaWF/hPiK1e0yOs/cyjJ1nussmYuspOfx2B+cwhhPBLDjpik0jS94h2caY3S1d0A/agkAAAm6SURBVHE0ehSHTf/VSqny0GrzELmcoX88zk8vTTE6v0K9a5q09x1mMjexU//AFMa7XzTyudfxhC4SC3v5SPNputq6CDqDFc5GKbXbaGG/z9zyOj8amOQ3Y3FS2SXsviGmMsNspJe3DI4aA6trDSwlAzjrHDRFxmkMJnk2osvqKqUqSwu7JZczvD22wE+HphmbT1LnHme57gJLGw8Ojm6kHSwu+bHhpim4gDswztONzbzU2qfL6iqlKk4LO1uv0pezM2S9A8xmrmPYOjiazQqJpI9M2kfQncUdGiLit3E0elKX1VVKPTF2dWHP5gz91lX66HwccV1jyTFoDY5GcNp8QL7bJbniJpUK4HPW0dwygdMzzdPBTnpjvRyJHNFldZVST4xdW9hnk+v8eGCS/rEFErmbZDwDJLLjOMzWzS9W1xpIJP24HC46oss4vINEvD4+0txHV1sXgYZAhTNRSqmtdl1h33yVPjI/jXFeIum4ykZm6+BoJmMnnvBjMx72BsAXvoajbjm/52jHafYH9+vgqFLqibSrCvsda8/Rd8YXmM9dIeO+xHJ2EqcE7g2Obu52CXvqaYnOknGMEfVEeKn1FT6696M4Hc5Kp6KUUu9rVxT2tXSWX16f483Ls4wmbpFxDrJiv47JmS2Do+m0nYVEfp30p/Zs4PQP4KgzPNf0PH2xPtp8bRXORCmltlfThd0Yw9XpZX5yaYqBO7Os2IZYdw2xmos/MDh6bzcjj4NI9Ba5umlafe10tXfx/J7n9ZujSqmqsaNqJSJfBz4LzFp/+pq1TV7FJVJpzg5P86sbc9xOjZB1DrLMLeqMa8vg6N09R50ON53NS9R5R/C7fDy/p5eu9i7CznCFM1FKqcdTjMvQbxtj/qoIxymKbM7w25txfjY0xeXZO6TrB1l1jpBhFb+9GYfk+8ffWyc9QKMXgk1XcDpXORA+SG+sVwdHlVJVq6b6F25bg6O/HZ9hLjtMxjVEKjeLW8J4bdF7hXp9o454IojL4aS9eYZ6703a/Xv5WOvvcqLlhH5zVClV1YpR2L8oIp8B+oGvGGPiRTjmY1lLZ/m/a3OcuzLN6NINMg2DpOzj1p6jMWySTzOXExJJL+kNP02+dTyhC0R9Lp6Lfpye9h4i7ki5Q1dKqaLbtrCLyBvAw3ZZfh34W+AbgLF+fwv4s/c5zueAzwHEYrEPGO5WxhiuTCf5yeAUA5NTJOUiG85rbJgkXtse6m3vbWixulZPYimIu76exj3j+P2LfDi8n+5YN4fCh7TbRSlVM8QYU5wDiXQCPzTGHN6u7fHjx01/f/+Onm8xtcHZ4Rl+eX2G26tDZJzDrJpJGmw+3LbGLbsZxRN+chkvIf8i3tAYHcEIp1pP8WLLi7qbkVKqaojIb4wxx7drt9NZMS3GmEnr7h8Agzs53uN4a3SB/x4eJGl/l3XnGIbcg7sZrTlZSgbwOHP4moZpDdt5LnKS7vZuWrwt5QpVKaXKaqd97N8UkefId8WMAX++44gKVO8dYdV9lpWNOby2CA3WnHSATNZGPBFAck6CodtEwnEORZ6mu62bZ5ue1QW7lFI1bUeF3Rjzx8UK5HF1Blups9cRdnQiVqE2BpZTbpZX/LjdS/iDVzkQjXCq9RXtdlFK7RpVO91xX2Af4fpW5jMLgLXn6GIAm00IhK/RGbVxvPkkPbEemj0PG/tVSqnaVLWF/a67ywGsrnpo8EwRbYxzrOVD9MR6ONh4ULtdlFK7TlUX9tV1O1NzjTgcKQJNwxze20R37Pd5oeUFXA5XpcNTSqmKqNrC/uvRBe7M22nw3mBf1MbHOk7S3dat29MppXa9qi3st1IDNEZGONYa43Rnj37JSCmlLFVb2A+3NNPkf5kTLSe020UppTap2sJ+IHyAA+EDlQ5DKaWeODplRCmlaowWdqWUqjFa2JVSqsZoYVdKqRqjhV0ppWqMFnallKoxWtiVUqrGaGFXSqkaU7St8R7rSUVmgfEiHKoJmCvCcaqF5lu7dlOuoPl+UB3GmMh2jSpS2ItFRPoL2f+vVmi+tWs35Qqab6lpV4xSStUYLexKKVVjqr2wf7fSAZSZ5lu7dlOuoPmWVFX3sSullHpQtV+xK6WUuo8WdqWUqjFVUdhF5BMickVERkTkqw95vEFEfmA9/paIdJY/yuIpIN8vi8iQiFwUkbMi0lGJOIthu1w3tfukiBgRqeopcoXkKyJ/aJ3fSyLy/XLHWEwFvJZjInJORN6xXs8vVyLOYhCRfxCRGREZfJ/HRUT+xvpfXBSRYyULxhjzRP8AduA68BRQD1wADt3X5i+Av7Nufwr4QaXjLnG+PYDbuv2Fas23kFytdj7g58B54Hil4y7xud0PvAOErPvRSsdd4ny/C3zBun0IGKt03DvI9+PAMWDwfR5/GfgxIMCLwFuliqUarthPACPGmBvGmA3gX4FX72vzKvBP1u3/AE5L9e5svW2+xphzxpiUdfc80FbmGIulkHML8A3gm8BaOYMrgULy/SzwHWNMHMAYM1PmGIupkHwN4LduB4A7ZYyvqIwxPwcWHtHkVeCfTd55ICgiLaWIpRoKeytwa9P9CetvD21jjMkACaCxLNEVXyH5bvYa+auAarRtriJyFGg3xvywnIGVSCHn9hngGRH5hYicF5FPlC264isk368DnxaRCeBHwJfKE1pFPO57+wOrhs2sH3blff8czULaVIuCcxGRTwPHga6SRlQ6j8xVRGzAt4E/LVdAJVbIuXWQ747pJv9J7H9F5LAxZrHEsZVCIfn+EfCPxphvichJ4HtWvrnSh1d2ZatT1XDFPgG0b7rfxoMf1+61EREH+Y90j/pI9CQrJF9EpA94HXjFGLNeptiKbbtcfcBh4E0RGSPfL3mmigdQC30t/5cxJm2MGQWukC/01aiQfF8D/g3AGPMrwEl+waxaVNB7uxiqobC/DewXkX0iUk9+cPTMfW3OAH9i3f4k8D/GGq2oQtvma3VP/D35ol7NfbCPzNUYkzDGNBljOo0xneTHE14xxvRXJtwdK+S1/J/kB8cRkSbyXTM3yhpl8RSS703gNICIHCRf2GfLGmX5nAE+Y82OeRFIGGMmS/JMlR5JLnC0+WXgKvkR9tetv/0l+Tc55F8M/w6MAL8Gnqp0zCXO9w1gGnjX+jlT6ZhLlet9bd+kimfFFHhuBfhrYAgYAD5V6ZhLnO8h4BfkZ8y8C/xOpWPeQa7/AkwCafJX568Bnwc+v+ncfsf6XwyU8rWsSwoopVSNqYauGKWUUo9BC7tSStUYLexKKVVjtLArpVSN0cKulFI1Rgu7UkrVGC3sSilVY/4fuNEj3BMFbjEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# We can also see how it compares to the true CATE at each target point and calculate MSE\n",
    "dr_effect = dr_cate.effect(X)\n",
    "plt.title(\"DMLIV CATE: MSE {:.2}\".format(np.mean((true_fn(X_pre) - dr_effect)**2)))\n",
    "plot_separate(X, X_pre, dr_effect)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Random Forest Based CATE and Tree Explainer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "from dml_iv import DMLIV\n",
    "from dr_iv import DRIV, ProjectedDRIV\n",
    "from utilities import SubsetWrapper\n",
    "from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor\n",
    "\n",
    "np.random.seed(123)\n",
    "\n",
    "# We need a model for the final regression that will fit the function theta(X)\n",
    "# Now we use a linear model and a lasso.\n",
    "rf_driv_model_effect = lambda: RandomForestRegressor(n_estimators=100, max_depth=3, min_impurity_decrease=0.1,\n",
    "                                                     min_samples_leaf=500, bootstrap=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "rf_dr_cate = dr_cate.refit_final(rf_driv_model_effect())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "rf_dr_effect = rf_dr_cate.effect(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "##histogram of estimated treatment effect\n",
    "import seaborn as sns\n",
    "\n",
    "sns.distplot(rf_dr_effect, label='est')\n",
    "sns.distplot(true_fn(X_pre), label='true')\n",
    "plt.legend()\n",
    "plt.xlabel(\"Treatment Effect\")\n",
    "plt.ylabel(\"Frequency\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ATE Estimate: 10.88\n",
      "True ATE: 10.71\n"
     ]
    }
   ],
   "source": [
    "print(\"ATE Estimate: {:.2f}\".format(np.mean(rf_dr_effect)))\n",
    "print(\"True ATE: {:.2f}\".format(np.mean(true_fn(X_pre))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.title(\"DRIV CATE: MSE {:.2}\".format(np.mean((true_fn(X_pre) - rf_dr_effect)**2)))\n",
    "plot_separate(X, X_pre, rf_dr_effect)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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SII777yTFStWpLsZO2XevHnMnj27Qx9DIZ2IiIiISBtcf/31bN26tcuuT0RERLo3hXQiIiIiIiIiIiJp5kt3A0REREREOsumTZt47rnnWL9+PYWFhRx11FGMHTsWsF1E99hjD/bZZx8APvroIxYuXMi5557Lww8/DMB9992HMYYTTjiBgoICZs+ezf7778/bb7+N3+/niCOOYI899tip9U2cODHWzmAwyG233ca5555L//79AaiuruaOO+7g0ksvxePx8NRTT7FmzRrC4TDDhg1j+vTpBAKBJs953rx5bN26le9973sAbN++nTvvvJNrr70Wj8dDXV0dL774IkuXLsUYw957783UqVPxePR7voiItL+1a9cyd+5cKisrGTduHNOnT8fn81FbW9vise2jjz7i9ddfp7q6mry8vIRj7ocffsiCBQuoqqpi8ODBHH/88fTs2bPJYz/66KOMGTOGAw44IDbtvvvuY+rUqYwfP565c+eyePFi6uvr6d27N9OmTaO4uLjJelatWsXs2bO57LLLYtPuvPNOTjjhBEaMGIHjOCxYsIAPPviAuro6RowYwfTp08nNzW1x2+jIKyIiIiIZIRQK8fjjjzNy5EiuuOIKjj32WGbNmsXmzZtbve8555wDwIUXXsg111wTC9Sqqqqoqanhsssu48QTT+TZZ5/9RuuL8vl8jB8/nkWLFsWmffbZZ+y2227k5+fjOA577bUXl156KZdeeik+n4/nn3++zdvC7emnn8bj8fCLX/yCCy64gOXLl+t8diIi0mEWLVrEGWecwcUXX8yWLVt44403AFo8tjU0NDB37lxOP/10rrnmGs477zwGDhwIwBdffMH8+fM59dRTufLKKykuLmbWrFkpH3vSpEkJx9ZNmzZRXl7O6NGjARg8eDAXXHABM2bMYNKkSTzxxBMEg8Edfo7vvvsuX3zxBeeccw6XX345OTk5PPfcc63eTyGdiIiIiGSENWvW0NDQwOTJk/F6vQwfPpwxY8bw6aeffqP1Hn744fh8PnbbbTfGjBnDZ5991i7tnTRpUkLbFi1axKRJkwDIy8tj9913Jysri+zsbKZMmcKqVat2+DGqqqpYunQp06ZNw+/3k5+fz4EHHviNt4mIiEhzDjjgAHr06EFubi5TpkyJhWatHduMMWzcuJHGxkYKCwtjlebvv/8+kydPpl+/fng8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\n",
      "text/plain": [
       "<Figure size 1440x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import shap\n",
    "import pandas as pd\n",
    "\n",
    "Xdf = pd.DataFrame(X, columns=X_data.columns)\n",
    "# explain the model's predictions using SHAP values\n",
    "explainer = shap.TreeExplainer(rf_dr_cate.effect_model)\n",
    "shap_values = explainer.shap_values(Xdf)\n",
    "\n",
    "# visualize the first prediction's explanation (use matplotlib=True to avoid Javascript)\n",
    "shap.force_plot(explainer.expected_value, shap_values[0,:], Xdf.iloc[0,:], matplotlib=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x396 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "shap.summary_plot(shap_values, Xdf)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "shap.summary_plot(shap_values, Xdf, plot_type='bar')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# CATE  with DRIV-RW"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "from utilities import SubsetWrapper, StatsModelLinearRegression, ConstantModel, HonestForest\n",
    "from dr_iv import IntentToTreatDRIV\n",
    "from utilities import WeightWrapper\n",
    "\n",
    "np.random.seed(123)\n",
    "\n",
    "# For intent to treat DRIV we need a flexible model of the CATE to be used in the preliminary estimation.\n",
    "# This flexible model needs to accept sample weights at fit time. Here we use a weightWrapper to wrap\n",
    "# a lasso estimator. WeightWrapper requires a linear model with no intercept, hence the Pipeline\n",
    "# that adds a bias to the features.\n",
    "rf_driv_model_effect = lambda: HonestForest(RandomForestRegressor(n_estimators=100, max_depth=6, min_impurity_decrease=0.001,\n",
    "                                                     min_samples_leaf=100, bootstrap=True))\n",
    "\n",
    "rf_dr_cate = IntentToTreatDRIV(model_Y_X(), model_T_XZ(),\n",
    "                            rf_driv_model_effect(),\n",
    "                            opt_reweighted=True, # re-weighting the final loss for variance reduction\n",
    "                            cov_clip=1e-4,\n",
    "                            n_splits=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wall time: 12.1 s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<dr_iv.IntentToTreatDRIV at 0x2b363544748>"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "rf_dr_cate.fit(y, T, X, Z, store_final=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "rf_dr_effect = rf_dr_cate.effect(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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6qHEJ4ysn7oyjTHGjGbUQNdYtvLUr9yU+Iy0gWFObwbePSUVGmOMGZMxtaFXhv3cCBwCXEs8HnOPvnrFmXbiAZxGeu+FVMb5WLly5V6vl8tl2tvbKRQK4y5+JkulUixfvhzfH8+or8YYs29jCnSNx50+XkTaiAcLWjvSbPt47/XA9QDr1q3ba5729naam5tZvXo1c2WMIFWls7OT9vZ21qxZU+tyjDGzxLj6oatqD/HgQK8D2oZcV3E58Yh741YoFFiwYMGcCXMAEWHBggVz7luJMWZqjaWXy6LKnjmVMa//CNgM/JL4yigQX0HmjokWMZfCfMBc3GZjzNQaS5PLMuDmSju6A3xXVe8UkSeB74jI5cAj7PvK78YYY6bBqIGuqo8BJ4wwfStwUrUL+vLPn6nq8j71tsOqtqybbrqJM844gwMOOACAr33ta3zlK19hy5YtdHR0sHDhwqqtyxgzc20+4jD2bACJWPtUdbNtJDaWyzjcdNNNvPzyq4cKTjnlFH7xi1+watWqGlZljKkne4c5gFOZPrWm9dT/evWtb32Lr371q5RKJU4++WSuu+461q9fz4YNGxARLrjgAlasWMGGDRv44Ac/SDqd5qGHHuKEE/b64mKMmfP2tZ889fvPcz7QN2/ezG233cYDDzyA7/tcfPHFXH755Wzfvp3HH38cgJ6eHtra2vja177GVVddxbp162pctTHG7G3ON7ncfffdbNy4kRNPPJHjjz+eu+++m66uLrZu3crHP/5xfvrTn9LS0lLrMo0xZlRzPtBVlfPOO49NmzaxadMmnn76aa655hoeffRRTj31VK699lr+8i//stZlGmNmjGic06tnzgf66aefzu23386uXbsA6Orq4sUXXySKIt7znvfw+c9/nt///vcANDc3k8lkalmuMabOxb1Zhof39PRyqbs29Gp2MxyLI488kssvv5wzzjiDKIrwfZ+rr76as88+myiKfyhf+MIXADj//PO56KKLBg+K3nDDDXzpS19ix44dHHvssbz97W/n3//936e1fmPM1JhM18PpCO+RiOqIQ7BMiXXr1unwC1xs3ryZtWtHGhpm9pvL225MPRu56yFM1572cCKyUVVH7Y0x55tcjDFmb7XrejgZ9V2dMcaYMbNAN8aYWaLuDooaY0ytqCq9+TJbWhexva2JjqYUZVeIBBAhkoh5v/op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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.title(\"DRIV CATE: MSE {:.2}\".format(np.mean((true_fn(X_pre) - rf_dr_effect)**2)))\n",
    "plot_separate(X, X_pre, rf_dr_effect)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEICAYAAABLdt/UAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XmcXFWZ+P/PU3tV73s63emEhGwQIGBAFhEVUAFHwBURVxxcxt1xhq866sg4P8dRUWfcEBcQRMEF0MEF2UECJBDCErJ3ku70vlZ37XXP749b3ekk3V1V3VVd1Z3n/XrVq6ruPffec6urnzr33LOIMQallFILh6PQGVBKKZVbGtiVUmqB0cCulFILjAZ2pZRaYDSwK6XUAqOBXSmlFhgN7OowItIgIg+LSFBEvlno/CilsqeBfR4TkStFZJOIjIhIh4j8SURekVr3ZRG5ZQa7vQboBcqNMZ/JUT4bReQnqTwGReQlEfl3ESmZkEZEZI+IvHjEti+kzm9ERJIiEpnw/nMi8t7U8pEjHoszzJuIyMdF5HkRGRWRNhG5Q0ROysW5zwcisk5E/iIivSKStmOLiKwXkc0iEko9r5+wTkTkv0SkL/X4uohIfs9AHUkD+zwlIp8Gvg38J9AAtADfBy6d5a6XAi+aGfRcExHXJMuqgccBP3CWMaYMuBCoBFZMSPpKoB5YLiKnjy00xpxojCk1xpQCjwAfHXtvjPnPVLLHJywbexzMMNvfAT4BfByoBlYBdwKXZHHqszLZ5zbH4sDtwNXpEoqIB7gLuAWoAm4C7kotB7tgcBlwCnAy8Abgg3nIs5qOMUYf8+wBVAAjwFunSfNl4JbUawGuB7qBIWArsG6SbX6O/U8eS+3/AsCL/QNyMPX4NuBNpX8V0Ab8K9AJ/GKSff4H8BzgSHNOPwVuBX4H/O8UaR4EPnDEsvcCj87wc1wJJIEz0nzWNwM9wD7gC9gFIi8wOPFzBOqAMFCfev8GYEsq3d+BkyekbU19bluBKOACrgV2A0HgReDyCemdwDexr6b2Ah8FDOCakM+fAB1Ae+pzd2b5eRxvh4Rp07w2tX+ZsGw/8PrU678D10xYdzWwsdD/M8faQ0vs89NZgA/4fYbpX4tdIl6FXVJ+O9B3ZCJjzHuxg+vXjV3q/RvweeBMYD12KewM7OA2ZhF2SXcpdmntSBcAvzPGWFNlTkQCwFtSx74VuGJCCXBWROT7IvL9KVafD7QZY56cZhf/gx00lwPnAe8G3meMiWL/CL1jQtq3AQ8ZY7pF5DTsH6sPAjXAj4C7RcQ7If07sK8MKo0xCeygfm7qeP8O3CIijam0/whchP13OA27VDzRTUACOzifiv03/0DqM2gRkUERaZnmPDN1IrDVpKJ2ytbU8rH1z05Y9+yEdWqOaGCfn2qA3lQwyEQcKAPWYJe0thljOjLc9p3AV4wx3caYHuyA864J6y3gS8aYqDEmPEVe0x3rTdil1r8Cf8QuvWZTFXJmKnCNPXaPrTDGfMQY85Eptps2byLixP4R/H/GmKAxphW71Dx2/r/k8MB+ZWoZ2IH4R8aYJ4wxSWPMTalzPHNC+u8aYw6MfW7GmDuMMQeNMZYx5tfATuwfUrB/NL5jjGkzxgwAX5uQzwbsoP9JY8yoMaYb+wrtitR+9xtjKo0x+6c61yyUYl/1TTSE/f2abP0QUKr17HNLA/v81AfUZlo3a4y5H/hf4HtAl4jcICLlGR5rMXYVxJh9qWVjeowxkTR5bZxmPcB7gNuNMYkJJeH3ZJg/sC/1Kyc8VqTfJKO81QIejj7/ptTr+wG/iLxcRJZil6bHrqKWAp+Z+IMDLOHwz+7AxIOJyLtFZMuE9OtSeSC13YEptl0KuIGOCdv+CPueRa6NAEd+d8qxq48mW18OjBxRwld5poF9fnociHD05fiUjDHfNca8DPuyeBXw2Qw3PYgdOMa0pJaN7zrN9n8DLheRSb9rItIMvAa4SkQ6RaQTu1rmYhGpnWybHLoPaBaRDVOs78W+2jny/NsBUtVLt2OX2q8E/miMGQtwB4CvHvGDEzDG3DZhX+OfXeqH4cfYdec1xphK4Hns+yNgX1k0T9h2yYTXB7CvBmonHKvcGJOPKpAXgJOPKIGfnFo+tv6UCetOmbBOzREN7POQMWYI+CLwPRG5TEQCIuIWkYtE5OtHpheR01OlSjcwiv2jkMzwcLcBXxCRulSg/SJ2i4hMfQu71HZTKnghIk0i8i0RORm7WmMHsBq7xLse+4enjcOrOXLOGLMTuyXRbSLyKhHxiIhPRK4QkWuNMUnswP1VESlL5f/THH7+v8Surnknh6phwA7SH0p97iIiJSJyiYiUMbkS7EDfAyAi78MusY+5HfhE6rOrxL7xOnYeHdjVWN8UkXIRcYjIChE5L5PPIZU/H/bVCanPwDtF8gexvzsfFxGviHw0tfz+1PPNwKdT+VwMfAb7pryaQxrY5yljzLewg8wXsIPBAezS3p2TJC/HDjQD2FUJfcA3MjzUfwCbsG+QPQc8nVqWaT77gbOxS75PiEgQu6Q8BOzCrnL5vjGmc+ID+CGZV8ecJUe3Yz8dQER+KCI/nGbbj3OommoQ+wbm5cAfUus/hv1juAd4FDt4/3TC+T2RWr8Y+NOE5Zuw69n/F/tz34XdgmdSxpgXsevvHwe6gJOAxyYk+TF28N4KPAPcg32zdOwH+t3YgfnF1PF+Q6qaKXXzdGSam6dLsVvzjJWsw8D2sZVi94/4XCqfMewrxXenPq/3A5elloNdBfQH7O/K88D/pZapOSRa9aXU/CMiFwE/NMYsTZtYHXO0xK7UPCAifhG5WERcItIEfInMm7uqY4yW2JWaB1Jt/R/CbrIaxq7i+IQxZrigGVNFSQO7UkotMFoVo5RSC0xBBh+qra01y5YtK8ShlVJq3tq8eXOvMaYuXbqCBPZly5axadOmQhxaKaXmLRHZlz6VVsUopdSCo4FdKaUWGA3sSim1wGQc2FPjRzwpIs+KPV3Zv6eWHyciT4jIThH5da7G0VZKKTUz2ZTYo8BrjDGnYA/U9HoRORP4L+B6Y8xK7DEq0k6vpZRSKn8yDuzGNpJ66049DPaQq79JLb+JLIaSVUoplXtZ1bGLiFNEtmDPnXkv9kh4gxNm8mnj0CQER257jYhsEpFNPT09s8mzUkqpaWQV2FNTfK3HHvD/DGDtZMmm2PYGY8wGY8yGurq07euVUkrN0IxaxRhjBrEH3D8TqJwwRVszh8+uo5RSao5l0yqmLjVzCyLix559fhvwAPZUZmBPjHBXrjOplFL5tNAGQ8xmSIFG7OnNnNg/CLcbY/4oIi8CvxKR/8Ce2eUnecinUkrlzQsHh3GI4HYKLqcDt1NwOx24HPZ7j9OByym4HMLh071mxxgzq+0zlXFgN8ZsBU6dZPke7Pp2pZSat5KWIWkZiFtTphGBCr8bl1OwDFiWXdK3jLHfG4MxBmMYf2+l3hsDDgesXVSOw5Hf4F6QQcCUUmo+MgYGQ/GstoknLZ7c2899L3Xx9L5Bbv3Hl3Pm8po85dCmgV0ptaBYlqF3NIrP7aTc506bPhJPpk2TLWMMu3tGuW9bFw/t6CEYTVAd8HDly1torvLn/HhH0sCulFoQxgJ6bzBG0jJpA2g4lqQnGGUonF0JfDoDoRgPbe/hvpe6aO0L4XYKZy6v4fw1DaxfUsmiCh+LKnw5O95UNLArpeY1yzL0jcboCUbtOvI0RqIJeoJRRiKJtGkzEU9aPNXaz33butm0rx/LwOqGMj7yqhWce3wdpb65D7Ma2JVS81K2AX04EqcnGCUUnX3Vy3hVy0upqpaIXdVy+anNnL+mniXVgVkfYzY0sCul5pWxgN47EiWRTB/QB0N28I9M09olUyORBH/b1jVlVYszz61dMqWBXSmVc/lsr902EM6oXjwYSdAdjBJLzD6gj0YT3P3sQe7c0k4olix4VUs6xZcjpdS8ZYyhdyRGPGmxuDI/rT/M5MNRHSUXN0VDsQR/ePYgv9/Szmg0yVnLa7ji9CUsryvNel+uUBeLbjwd/ukpqFs167xNR2dQUkrlRCiWYFf3CJ1DEawsuujHElZOStW5FI4luWPzAT5w0yZueWI/6xZX8O23r+f6pvu59K4TwMr+R6Nizx/sF5t+muPcHk1L7EqpWUlahq7hCH0jsYy3iScthsJxhsJxQtEkHpcDr8uB22V33/c4HbhdkurKn9/yp3dgB2IliNScQCSe5J7nOvjt020MRxJsWFrFlWe0sLKhDICav9pB2RUZIBGoz2u+ZkMDu1JqxobCcQ4OhjO6iZmYEMxHj2iZMl2pXQQ8Lgfu1BguubgJOtGq314AwHUbHue3m9sYDMc5raWSK89YyupFZTk91lzRwK6UylosYdExFGY4PH1b8KRlGA7HGQzHGY0mmMkgisZANG4RzSagW0l8A9uJ1JwwbbJ48tA+f/LoXtYvqeTKM1pY21iefUaLiAZ2pVRWekeidA5Fpg3SkbjFvr5RgpGZBfPZanr0Wqp3/JqX3v4o8bKWo9ZbxvDwjh5ufWI/G1PL/r/LT2JdU8XcZjRPNLArpdIyxjAQitM/GiUcS19yDseShOcgX1PxDu4CwB3qPiywG2N4ev8gNz/eyp7eUa6qfH583UIJ6qCBXSmVgfbBMAOjuRtTpRC2dwa56fFWnmsfYk1ZlL8u+RWrev6S1T7ESjMMgZVEklEcySiSjOBIRFPvI5R0PmWnMflvAaSBXSk1rc6hyLwO6gcGQvzi8X08vqePSp+Lb5+4m0varsfZF6TrtE/R8PT1h29gDK5wN97BXfgGduId3JV67MQVHQDg+DvfQNJdgiMZQRJ24JZkFEcmzSC92beBz5YGdqXUlHqCUXqC0UJnY5wr1EXVjjvoWf/RjNLfsbmNG/ZG8LqcfPDUAB8a+R5Vu+8lVHcKe8/9BtHq1eOBvenhz9rBfHAnztjw+D6S7jKiVSsJLnk11TtuByBavpSEvw7j8mE5vYeenV4sp89+dnkxzkPrK3ffReXuuyAWyv0HcwQN7EqpSQ2MxugciuT9OL7e51n21/fz0juesNs2TmPZn9+Nv38b/auvIOmvnTTN2HC8JcDmfQNcsm4dH6t+khXP/CeSjNJxxufoXfcBcBwe/sr230e0aiWDKy4lWnk8kcqVRCuPJxFoGM9X2YEHcId7OPCa72Xdjt0z3GoH9jmggV0pdZThSJz2wbm5/dn88D/jDnXiHdhBtHr1tGmd0SEAHMkoR47RaBnD/du6uXljKzcmoixzwBfPLWPZgS9TtvNhRhedQdu5XydWsXzSfb901dO5OJ2ikHGXLhFZIiIPiMg2EXlBRD6RWv5lEWkXkS2px8X5y65SKt9Gown294Xmrpli6maiZHBT0TN6EIDqF2+mpP0R3CPtYCyeax/iU7dv4Tv376S+zMeyanucmpM2fppA1ybaz76OPZfcPmVQz1T/2ncBkPBVZb3t6KIz7RcrL5hVHjKRTYk9AXzGGPO0iJQBm0Xk3tS6640x38h99pRScykST9LaN1qQtufZqN/6A+q3/gCAGB5cVgOfdzZRuXIN9ctOpOaRrQAkXQF2vvle4mVLcnLc7tM+Sfdpn5zRtpHadXR+qqu4ZlAyxnQAHanXQRHZBjTlK2NKqbkVTSTZ2zuKNcvWeI7oICf+4mRaL/wJwaUXpk3vH3gp9SrzX5Ntr/kZD+wa5OCe51nu6OTsygHOpgNf2ybkwKEmiW2v+nbOgvp8MqM6dhFZBpwKPAGcA3xURN4NbMIu1Q9Mss01wDUALS1H9wRTShVOPGnR2hvKaMyXdALdWwCo2XbztIHdHWyj8Ynrxt+7wr0ZH+ML9/exObKY89ecxAVnLiVe6mUXgJXAE2xj9R2vBCAxxQ3WidrO/W8cify3VJlLWQd2ESkFfgt80hgzLCI/AK7D/rm9Dvgm8P4jtzPG3ADcALBhw4Yiv9BT6tjQNRyh3OembSA0Z0PnSiJC3XM/om7L/4JkcJvPSuII9/Di9h2clFrUUO7j+jeu5/j6I9qEO1zEKpYxuugMSjqfxDjcaXc/sPrt2Z9EkcsqsIuIGzuo32qM+R2AMaZrwvofA3/MaQ6VUjlnjKFtIMxgyB5tMasBttIQUjdDE0c0lTSGsv330rjxK3iD+xk87g10vvwLrPmVfVOxcved+Hu24A514R7txBXqwh3qwhnqwYHFiRN29fHXriNeOXVHn7Zzv0HLfR8kXHtyzs5rPsk4sIs9z9VPgG3GmG9NWN6Yqn8HuBx4frLtlVLFIZG02NcfGp/UOadBPRFhyf0fA6C084nx5Z6hvSx+/MuUtT1ApHIley6+jdHF5xy2bdXO39j581YRDzQw4KzmuUQD2xMlRLz1rF21in/Y9s92Ypd32nzEKpax603ZDRewkGRTYj8HeBfwnIhsSS37HPAOEVmPXRXTCnwwpzlUSuVMJJ5kX19+ql2ckUGW/u0DOOPB8WWO+Ch1W/6H2uduxDg9HHz5F+k78T0woYokUnk8vsFdtF54IyNNr2R7X5xfbNzHlgOD1JR4ePsrlnDh2gZcTgex/d8ab/KoppZNq5hHgcm6hd2Tu+wopfJlJJpgX9/sW71Mxh1sY9lf3o1neD+jDRso6doEwKo7Xo071MnAyrfQefq1k/bWNGKHodZELT/4yx6e2NtPuc/F1eccx0UnLcLrco6ntTylMArG4cn9SSwg2vNUqWPAwGiM9sFwXtqn+3qfZ9lf3oMjGaX1olvw9b80HtgT/lr2n/99Qg0bptw+6KnHz0t8/k/7GfQ0cNXLW/iHUxYT8BwdnlpfdzPV224mEajL/YlkSIQZf46OOZplWgO7Ugtc51AkbwN5lbY9RMt9HyLprWT3xbcRrVqFY8IAWrsu/QM4nJNu29o7yu2bD7Bp3/t4jXsDZ522njed1kSZb+qWLPHSxXSdfm3Oz2M6IlDqdVHqc1Hmc9ExGCEYSTN8b4rLKZR67e1Kva68z986ftw5OYpSas5Zlt3yZSg8+yF3HfFRVt3xara/7WGMy+45WbX91zQ9ei2R6jW0vvZnJEoWAYeqSYLN500a1Hd1j/DrTfvZuKcfv9vJJaet4NL151IZKEz1it/jOGryEI/LYQdjn4tSjwuHY/rBycaIQMDjpNTnotznxuee/Ect3zSwK7UAGWPY2zc63vJltmq3/hB3qJOaF35G78kfov7p62l45tsEm17J/vN/aNd9p/FS5zC/fuoAm/YNUOJxcsXpS3jjKYunLaHni9MhVAbcVJd48LmdvHBwiIDnUMk6m4DsdTvGS/TZ/AjkkwZ2pRaYpGXYl8OgDodmDnIkIzQ98lmqd9xO/8q30n7u1w5r4QJguUvsfLjtYP9c+xC/fmo/z7YNUeZz8a4zl3LJSY2UeOc+/JT6XFQF3FT43ciEIYLXLirPOCA7HUKF320Hcq8Lj2uOKs6zoIFdqQXEHhpglEgO26YD+Pvs7iljk1J0nfpJuk/71KTjp4cWnU7fmqv4S+OHuPV3W3nh4DCVATfvO3sZF61rxO+Z2+oJt0uoCnioCnimDMLZlLKXVAdylbW80cCu1AIxNjJjPJH7pi9lbQ+Nv2479+sMrL5i0nTGGJ7ZP8hnOt7Gji37qSnxcM25y3ntiQ2HNVucCyVeJ3Vl3oJU9RSaBnalFoDRaILWPLVR9/c8e+g4DadPGdSfaxvkF0/sZ1vHMHVlXj7yqhVcsLYB9xy1BDlSVcBzTAZ10MCu1LxjjDmsfngoFOfAQP4mxqh/5rvjr4NLXn3U+m0dw9zyxD62tg1RXeLhQ+et4LUnFC6gKw3sSs0blmU4MBCiodw33mqjdyRKx2D+5iX19T5P+f57J123q3uEW57Yx+Z9A1T63Vz9iuO4aN2iOa9yUUfTwK7UPBBNJNnfFyISt2got5d1DIXpDcbyetz6Z75L0lPO4IrLqNl2M2B3LPrlk/t5fE8fpV4X7zlrGW84ubFgbbbV0TSwK1XkgpE4+/tD4/XnxsCB/hCDodl3PJqOr28bFfv+TNepn0Qs+1iP7OzhXx59Br/HyZVntPDGUxYXpNniZFxOIeBx4nc78XuclEwyJMGx4tg9c6Xmge5ghK6hw4cDODAQyulQu1Op2/Jdku5Sdi1/F8P3fYOLgLaBEG95WTOXnzp91/98czoEv8dJwOPE57aftU7/EA3sShWh6YYDmIug7h3YTsXee3ig7l185PadfJwQOOHyU5sInr4s78efTlOVn+oSHd1xOhrYlSoCxhiMsTvKTKxPL4SkZUg++N+E8fDpA+fwshVVXFi5DF4Ajz/90AH55iyCLvvFTgO7UgU0Ek0wFI4zHI7TXOUH4EB/mKQ199MCG2PYtG+A+x59lF+E7+U3vjfx+UvOYU1jOdHkCoJDW+k74X1znq8jaWBPTwO7UnNsNBXMh8JxEslDAbx/NEYwkshbe/Tp7Ooe4WeP7WVr+xA/CNxB0unlxDd/HitgN8ExTg+tr79p7jN2hLoyL6VFcrO2mOknpFSeGWMIx5MMhuIMR+JTdvkfDmc2xncudQcj/GLjPh7c3kOZz8W/nu7m9c8/Qu+6f8QK1M55fqZTU+phUYWv0NmYFzSwK5VHlmXY3hU8rGReDCLxJL95uo3fP92OwfDm05p568uaWbXxXzEON70nXVPoLB6mMuBmcaW/0NmYNzSwK5VHccsqqqBuGcNDO3q46e+t9I3GOHdlLe89axn15T7cw/uo2vU7+k5875xOPedwgM/tnHKY4Qq/e/z+g8pMxoFdRJYANwOLAAu4wRjzHRGpBn4NLANagbcZYwZyn1Wl5p9iCurbO4P8+JE9bO8KcnxdKZ993WrOTDxFYMcf6NrwWeqf/R7G4aLnpA/Oab4WlfsYjSaBowN7mc/Fkmr/YWPjqPSyKbEngM8YY54WkTJgs4jcC7wXuM8Y8zURuRa4FvjX3GdVqfmnGAJ730iUnz/eyoPbe6gKuPnE+St5zZp6HCIsu/H9APSvfgdVO35D39qrxqe4mwsBr5OaUi+j0dBR60q8TlqqAxrUZyDjwG6M6QA6Uq+DIrINaAIuBV6VSnYT8CAa2JUCIJYsTFt0sMeX+f0z7fxmcxuWMbz1Zc285WXNBCbpal/37Pcx4qDnlA/PWf5EoGmKenO/x8mympKimGZuPppRHbuILANOBZ4AGlJBH2NMh4jUT7HNNcA1AC0tLTM5rFLzTiIfA6SnYYzh5J8sBeAtkV9y9ooa3nfOcSwqP7xFiSQPDVVQtePXDKy+gkRJ45zls77MO+nAYT63g+NqNajPRtaBXURKgd8CnzTGDGd6mWSMuQG4AWDDhg2Fvz5Vag7kuipmyf0fpXLP3Tz3gf2Trt/VPcKPH9nDPan3fzv+DurcURyPDuOMB3HGgjhiQZyxYRzJw8eg6TnlIznN63S8bgd1Zd5Jlx9XW6KdkGYpq8AuIm7soH6rMeZ3qcVdItKYKq03At25zqRS81U8x1UxlXvunnT5wGiMmze2ct+2bsr9hwbnWtr/d5KecvvhrSJW1kLSU4blLiPprWDRpq8DMLjyLcRLm3Ka1+k0Vx19Q9TtEpbVlODSwbxmLZtWMQL8BNhmjPnWhFV3A+8BvpZ6viunOVRqHotnWGJ3jxykvPUe+tZ9IKv9xxIWdz3bzh2b2ognLS47tYm3b1gCv7DXv3TlU9NuPxbYu9f/U1bHnY3qUs9R9fwup3BcRcmUk02r7GRTYj8HeBfwnIhsSS37HHZAv11Ergb2A2/NbRaVmr8yLbEv/8Ob8IwepH/NVRhX+t6Vxhge39PHTx/bS9dwlJcfV837zzluxp144mWzv+81Ph66x0kiaegbOXoSELdLjqrrB2is8GnrlxzKplXMo8BUn/z5ucmOUgtH0jIZj/vijA4CICZJJpt8/s7nea59iJbqANdduo71SyoBcAfbKG1/aIY5zpwI4+OhB9wu/B7nYaXt/tHJZ3ZqrPBPWn+uQT23tOepUnkST1pU7LoT92gHvWmaEYqZpmRvDN6BHThbHxxf1No3yofOW8HFq8op79pI6d8foqz9YbxDe3KU+6P5PU6qSzwEPE68LkfWwbjC76bCX7jJOY4lGtiVypN40qLlwY8DTBnYvf3bqdz9exzJ1ITUxu596RrtpPTgo5S2P0pJ+6N4woe3SfjjqZupOfBtAk9twmHFsJw+RhvPpG/tVYw0nceq3+b+Irrc55rxBBcOBzRW6gBec0UDu1J5MlVTR/fIQSp230Xl7jvx92/DyKG23I2P/zuB3mfxDewAIOyu5MHkOu6NX0aw8Rx+2PseAJY+81+Eq9bQd+L7CDa/klDD6RnVzR+p/ZyvUtr2yAzOLjuNFX6dum4OaWBXKk/iEzonOaKDVOy9h8pdd1LS+QSCIVR/GgfP+gqDy9/ACbeeBkD1zjsINp3LnsVv5MftS7mzs4qmqhI+cP5yXra0Cm6097ftHU/mpOt//9p30b/2XbPez3RKvE6dym6OaWBXKk8mltjX3roBhxUjWrGc7tM+xeCKy4hVLBtfb8SBGIuNb36Km7eO8OenO/B7nHzg3KVcvG7RUW2753I8F7BvlpbMYIILEXS43QLQwK5Unkxs6th/wrsYXHEZ4dqT7Wh3BMvpw5kI8bHfvEhfzM1F6xq58oyWwzobAYRrTsTf90LaY7ef8594hltnfQ5gZ3dpTWBGgX2qYQNUfmlgVypP4olDgb3jzC9NmsYYw5Ot/ZhkCyfzEkvrKvnSuatYWlMyafpdl/8po2P3r70q+wxPQgRaagKU+bJvzeKbYtgAlX8a2JXKExPqm3b9ru4RfvrYXp5rH2JpxVf48IYyvrjmhKJp0y0CS6oDlM8gqAvQNMmwAWpuaGBXKl+CnZMu7huJcvPGfTzwUjdlPhcfeuVyXnfi0fXohTQW1Gfa7rzc79aBvApIA7tSeZBIWrhGuwDY/Q/2eHnhWJLfPtPG759px7IMbzqtibe+bMmM6q7zSQSWVM08qAMa1AusuL5RSi0Q8aTBHbJL7FFfPX99sZNbNu5jIBTn3JW1vPusZZOOmZJLY7UgmQ5rMKa5yk9FQHuIzmca2JXKg7hl4Q7ZJfZP/F8HO/tvOKdpAAAgAElEQVTjrG4o43MXrWVNY/mc5GHNojJcTgfGGCxjT2RtGXv8GmvCsrb+MEnLjv7NVX4qA9rmfL7TwK5UHiSSBtdoF0NSTueo4V9et5pXHF9bkJuJIoJTwDnFGH5OR4SkZWiq8lOlHYkWhOK5W6PUApJI2iX2Hqo5samcc1fWFXULkcWVPu0duoBoiV2pPIglLUpDnRy0KqktzU1bbhEo9boIxZLjVSdHcjmFUq+LUq8r4xuYiyp8OuriAqOBXak8GKuKOZg8gbpZBHaf20Gpz0WZz02Jx4mIsLMrOB7YnQ47kJd4nZR4XTPq5alBfeHRwK5UHiQSMdzhXrqoornaT5nPhUMEhwMcIjgdYr8XOziLCD3BCNGERZnXnQrmrklHRCzxuqgMOCjzzSyQq4VPA7tSeWBGehAsuk0V5zRXsqx28iECJvK5HXic6Sew0EG1VDoa2JXKMWMMkup12mWqaMwwEHtdWvpWuZFxqxgR+amIdIvI8xOWfVlE2kVkS+pxcX6yqdT8EU8aXKk27N1U0aADYak5lk1zx58Dr59k+fXGmPWpxz25yZZS81fCsnCnhhOI+YtrDBh1bMj4G2eMeRjoz2NelFoQ7OEEukjiwFNRV+jsqGNQLooSHxWRramqmqoc7E+peS2RtHCFOumnkvqK9DdNlcq12Qb2HwArgPVAB/DNqRKKyDUisklENvX09MzysEoVr3jS4B7tosOqorFCW7CouTerwG6M6TLGJI0xFvBj4Ixp0t5gjNlgjNlQV6eXp2rhiictHKOddJpKmirzO4KjUpOZVWAXkcYJby8Hnp8qrVLHioRlt4rpMlU0VQUKnR11DMq4HbuI3Aa8CqgVkTbgS8CrRGQ9YIBW4IN5yKNS80oyFsYbG6TLVLGuSqti1NzLOLAbY94xyeKf5DAvSi0I1nAHAF1U0aS9RFUBaANbpXLIsgzOEbsNey/VORvZUalsaGBXKofiljXe6zTmb8Chc3+qAtDArlQOJVKdkwCkfFGBc6OOVRrYlcqheNLCPdpJFDcB7XWqCkQDu1I5NDYAWJepYpHeOFUFooFdqRxKWBYEO+kylTpuuioYDexK5dDYlHhdRps6qsLRwK5UDsWSFt5IF90a2FUBaWBXKoeS4SCeZIhOU8WSah1OQBWGBnalcilo9zrtkxpqSz0Fzow6VmlgVypHkpZdvw4Q89ennZRaqXzRwK5Ujoy1YQewyrRzkiocDexK5Ug8eWg4AVdFY5rUSuWPBnalcmSsqWPQ+Kmsqil0dtQxLONhe5VS04tbFibYQbepZHGFzpykCkdL7ErlSCJpcIx00mWqtNepKigN7ErlSDxp4Q110UUVi3WuU1VAGtiVypF4wiIQ66HLVLNE5zpVBaSBXakcscL9uEycfkc1VSXaOUkVjgZ2pXJEgnYb9rCvHpfOnKQKKOPALiI/FZFuEXl+wrJqEblXRHamnqvyk02lilsiaeEasQN7sqRBe52qgsqmxP5z4PVHLLsWuM8YsxK4L/VeqWNO/LAp8RYXODfqWJdxYDfGPAz0H7H4UuCm1OubgMtylC+l5pW4ZeFIldj9VRrYVWHNto69wRjTAZB6rp8qoYhcIyKbRGRTT0/PLA+rVHFJJA3J4YP0m1Jqq8oLnR11jJuzm6fGmBuMMRuMMRvq6nSSX7WwJJIWEuywOydVaOckVVizDexdItIIkHrunn2WlJp/YkkLd6ibLlPN4irtnKQKa7aB/W7gPanX7wHumuX+lJqXEkmDP9pNl6miuVI7J6nCyqa5423A48BqEWkTkauBrwEXishO4MLUe6WOOYlEnNJ4P4POasp8OraeKqyMv4HGmHdMser8HOVFqXnLjHTjwCLkq8fl1DbsqrC056lSs2SMGe91GvM34Hbov5UqLP0GKjVL8aQZnznJlC3CocMJqALTwK7ULCUsC1Ildneldk5ShaeBXalZiicN8cGDJI1QVq1znarC08Cu1CzFkxYED9JDJYuqSgudHaU0sCs1W2OTWHeZKhp1SjxVBDSwKzVL8aSFL9JNt6miUSexVkVAA7tSs5SwDKWxXgac1ZR4tHOSKjwN7ErNUiIWpswaIuSt085JqihoYFdqlkyqqWPUvwi3U/+lVOHpt1CpWbAsgyMV2K3SBp3rVBUFDexKzULcskgOdwAgZY24tMSuioB+C5WahUTSEB9oB8Bf01Tg3Chl08Cu1CzEkxZmuIOocVFVs6jQ2VEK0MCu1KzEkwbHaKfdhr1KOyep4qCBXalZSFgWnnA3XVTRUK6BXRUHDexKzUIiaSiN9jDorMHn0n8nVRz0m6jULMSSFhXJXkbcdTi1qaMqEhrYlZqFZDhIwISJ+Ou1qaMqGvpNVGoWTNBuw54oacCtwwmoIpGTEYtEpBUIAkkgYYzZkIv9KlXMkpYh1m+3YaesEZfOdaqKRC6Honu1MaY3h/tTqqjFkxaRVOckd+ViLbGroqFFDKVmKJ60sIbsqpiSmiWIaGBXxSFXgd0AfxWRzSJyzWQJROQaEdkkIpt6enpydFilCieRNMhIJyPGR31tTaGzo9S4XAX2c4wxpwEXAf8kIq88MoEx5gZjzAZjzIa6urocHVZlKhJPFjoLC07csvCEu+imipoyb6Gzo9S4nAR2Y8zB1HM38HvgjFzsV+XGcCTOwcFwobOx4CSShkCkmwFHDR5t6qiKyKxvnopICeAwxgRTr18LfGXWOSugXd1B6sp8VPjdhc7KlPpHYyQtQ12akuJINMH+vhA+t3OOcja3jDHEk4akZYhbFomkITH2nHqdtAwrG8pyfux40qIs0Uu7ey1NGthVEclFq5gG4PepG0cu4JfGmD/nYL8FE45Z7O8L4fc4chbgh8Jxyn2uWd9giyct2gfCBCMJ6sunD+qj0QStvaMYk/n+B0MxXE4Hpd7in7tzMBTjQH9ur0SMMRn/jeIJi0VWP2FfvU6Jp4rKrP97jTF7gFNykJeik8sAf6A/hNMh1JR4qCrxzGgKtaFQnPbBMEkrfaQOxRK09mUX1LuHI3QNR1laG8g6b4WQzbmlM/aD2VDuw+/J7OomMdqPlzjxQL3OnKSKSvEXy+aYNUnQHAvwPreD+vJDAX4oFMfplIxLt4mkoWs4SncwSrnPTXWpJ6NtE0mLjqEIg6F4RscJx5Ls7R3FsjJKjjGGtoFwxvtfaPpGonQOR7AsaCjPfLuRnv32i1KdOUkVl2M+sBtjGI0lGY0mGIkmCMembj0SiR8e4KOJJF39Ucr9Lhor/HgyHN3PGLtqZigcx+t2UF3ioSrgmXQQqeFInPaBMIlkZsXTSDy7oJ60DPv6RhmNHjrv7uEIiaSh0u/GMYcl0XjSonMowpLqubliiCaStA2ECUWzbzEUT1qE++zOSY6KxVpiV0XlmAvsxhhCEwJ5KJbM+pJ+LMCPVcUOhxMEI0HqyrzUlXqzCobRuEXHYITOoQiVATf1ZT48LgeWZTg4FGZgNPNSdDRhB/VMqmrG0u/rCxGNH/4rEI5ZtMfCdAyFqfC7qS7xEPDk96syVmo2Bpbk9Uj2d6BnJEr3cHTG1TmJpCExdBAAf3XTjKrWlMqXYyawh2NJOocjjEYTOaubnbgfY6B7OEr/aIzGCh+VAU/W+xoYjVPicRFPOmgbCBNLZFjsBmIJi729oxmX7EOxBK29oWl/BCzLztPAaByf20HVEVcWlmVoHwzjdTvwuZ34XM6Mr1rGROJJ2gcPLzUfHAxTU+rB68p9S55wLEn7YIhwLPPPdjIJy4JgJwCldc06ZK8qKsdMYI8mkoxEEnk/TiJpONAfpm80xuIKf8Y34sb0jUazDjpjQT2eyCyoD4XiHBgIZfUDF5lwZVHhd1NV4sHvdh5VL+9wYAd5txOfyzH++sjAZ4yhOxilJ3h0qblvJEb/aIxyn5uaUg8lOWihY1n28XpHpi+ldw1H8LoduBwO3E7B6RDcTgcuhxxWj24Ad6iTAVNKZVnum1IqNRvzLrB3DB1e3yzCePM0Sb23X8uE13ZgmkuhaJJd3SNUlbhZVO7LeLtsg3o8adHaN5px6b47GKFrKJrVMSYyBgZDcQZDcdyuo0uplmWf+5H11uV+F0trSgC7bf3BwfBRVUBHHmfsPoTf46S21EOF3z3j5qI7u0cy+oyCkQTByOTrREgFejsPvkg3fY4a3Dpzkioy8y6wByOJaQNCsRkYtYNTLpvmjUlYhtbe0Yw/j7aBUFZ19ulkeoUAdl6zbd0zJhxLcqA/TKcrQk2Jl+oSuzrIs+UmpOkfMK70c41mEtRdoW68Q3sYbTxz0vXGMN7xCaAs3suwq5ZaHa5XFRn9Rs6BTFuoZKt/JJbxlUg4lswoqFfs+QMn3diS20biQPOt59Gx8Y60Qf2kG1tY+4uTJl0XTxg6hyJs6xime/czlNz7zyx58JM5y+Oa217O8v97W0ZpW+77EKuTOwl5a7Vzkio6GtjnK2Oo3/zNnAfgxY99DgBndCht2uptt1DemlknY+/gLpbcO+nAn0dxpTm2MRAcsIf+d4XTjxS65pens/pX56RNJyazZo/OyCAVe+8BIOZv0MCuio4G9jnQ8NTXaHz8S2nTOeKj1D3zPxnts+bFm2h45jvUvHhTRulPurGFlns/kFHaTDU99jmW/i2zYF1I7lAXnpEDuduhOXQTPlm6CLdWxagiM7++kU/8iJY7XjejTeuf+Q6ODEqhjX//Io1//2L6HRqL5oc+BVb6Ul79s9+n9oWfpU3X/PBnWLT5v/H1Ppc2ra//RQDcI23p85pSse+vGadVmXGWL8apJXZVZOZXYP/Tv+DrfSHrzbwDO2jY/E1aHvh42rS1L/6c2hd/njZdzQs/o2rnb6l97oas8zMVZ2TQfo4NT5vOM9RK9fZfAeDv2Zqz46vseaqatMSuis4x8Y10xEcAcEYHc7jPUQDK9/0VR2wkZ/tNx9f3Isv/+OY5O56aXqC2SevYVdE5JgJ7PkQrVwBQ0r2ZNbedzuJHr8XXm9/Sc6Brk91qQ5zEfbV5PZbKjKdikQ4noIqOfiNTXKOdh7fwSFN3nkgF1s6XfZahZRdTtfN3rLzzDRz/+4upeunWnJfiSw88yHH3XEnCV8Puf/gd0crjM9vQStLw1NcyPs5YixRndGAm2TzmOF3FOxmLOnbNuw5KueCIjeDv3Yq/ZwuB7i0EerbgDnUeluaEm08kUr2WSO06wjUnEq5ZR7RqFcZ5+BgwoYbT6Dn1Y3Sc+UUqd99J9bZbaX70/9G48TqGVlxK/5orx9N6hvYSqzgu6/xW7L6b5oc+RbRqFa2vu5lEILM5Y53hPpY88DHKDj6a9TFX33EefWuuonfd1cRSVydzaelf3stI07mMNL3S/hGb6QQl+egZNoFbq2FUEZqXgX00EgPJ/GJDUkPxBnqeYcUdF+Af2olg/8OHy5YyVH8GI7XrGak9hXV/tuuvu49/GyX9L1C54zfUJOwmhZbDTbhyFaNVJ+BM2HXskdRIkVBCcMU7ObD8Skp7t1C/8zZqdv2e6u23jefj+N+9jgPrP0PnmveC4+gxZMYG5Dq0T6jfcRtLnvgCwfqXsf3VN5J0lkM0gZUKWJYx42knKul9lhUPfQR3pI/dZ32NFY9fa392k6Qd4xveM/66v/kCqnbcTs1LtzDQ9Bo6Tria4YYzJw2w0+1zpmndg3tYfOB+AKKBRQw1viL1OIeErwZHanLupDX5+XuDB6hpvZvavXdPe2zPSDtV7fdR1fbA1OmMhXekncDgdgIDL1HWs3l8lUtvnKoiNC8D+4m/OInnrePYao7jOWs5W81y9pt67FFhjnahYxM/ThW0N/YHeNZ6E1vM8TxrLWcwUgbjfVyitKaGdTlry2uB1yJYLJUu1kkrJzpaObGnlRP7/kyNBAG4+09/5IfJyf6530QZr+dS52P8h9tu6vhAbC0XbP4qfU/dzmfjH2SPWXzYFr90D3G2E667ZxuPWw4+5Lyba92/4oHkKXx4/z8RuenF8bS/8gxzpgNe7Bjmih9vPGw/b3c+wFdcP6OHSj4U+yLPP9Ayfl5HpgXwEuPDrrv5sPPu8Y/w1bvehps3c5XrXq5q+xsntN/PC9ZSbkxczB+ts4jjmnafR5oubTmjNEsPzdLDmam/09qe/6RZeniF4zleEXyOV4z+iZW7fwPA89YywnjAATu6guP7rGaYS5wbudT5d0517ADgSWs1ZzgOHduBxXrZxWucz3C+42nWOuz27butRipT6b51489Y7TjAWtnPascBVssBSuXQADI9pnz8c9Ibp6oYzcvA/lL9xbSEtnF66K+4jN1FPews42DJWjoCa+znkrUMu+tBhLX9eyFVGH3s5T8A4PjU4yib7KerXzGxymQFcDa9wEPAQ8ZwQdv/cFbXbZzT4iPeNF31yomwyQ7sj5/xPUb6/8Lr9n+Lvzo/x4NN/8jGhndgxC69N273QxAuXtfAx4bv4ezOX/F89YX8fdm/8U7H4XW5i17ywQgsKvdx9Rr7+E4rykX7v8mpvX9gd/kZ/H75V3i5q4KXT3lecNzwk1y07xvURA/wXPVrOanfbut+1ZktRFwVBFnPDdbHOanvL5zZ9Suuj/yAr7jv4Kn6N0P75PucVOr4P1z5FJWxDiqjB6mMdlAR68SfDB6V3N7nccAZPANsMUkWhbazYuhJjht+knUjzwCwwbGD69fuYF3/X1k+/AROk6Tbv5z7qj/MC9UXMuRt5IxNZwFwV9MtHD/0OCWJASyc7C87hXsrLmNH5Svo97Xwr0+/Bo8V5nbvdYD9ner2r+DFwBvo9q+g2388Pf7jcJgkn93yOhKuEr1xqopSTgK7iLwe+A7gBG40xmR+t24GfJdeTz8wkIzhHdiBv/dZAj1bWdy7leVdv0RSPQPj/jrCtSfhivSPb3vZ+qbpd74ps3R1NEEXrG4oozLTfZ7aDFxNa+gNLH7sC1yw73ucHX2Mtld+g2jVKuravRCEt3V8A29wP31rrsKcfR1vnKTaprbNCyNQW+rlsvVNuINttNz3cQK9W+le/zFCp32a103c7ojzcoV6aHziOip330m0fBl7X30LNL+SxC9OwhUd4pJ1i0n6Kicc8cN0mg8x0v4wtc/9mNe0/2h8zVSflSvURcWeP1K5+1B1yOsPXI/l8hMrbSZWu4RQ2dkMljYTK1tCrKyZlXe+YZp9tgAXEgTatv+a5kc+C8Dle79MrGQxfSddw9CKy4jUrKUeqD/i3E8ceYyRpa9mf8sFBJtfieWtZBGwKJXMs8meGHvv624iUr2WRKABRPADS1MPAGe4F7YALp/OnKSK0qwDu4g4ge8BFwJtwFMicrcx5sXpt5w94/QQqV1HpHYdA2veaecnEcHXv41Az7OpG6TP4hvcme+sZCURaGD/BTdQsecPLP77v3H87y+m+7RP4kjYgcUb3E/3KR+la8NnM7ppWNL+CC33fxSxErReeCPBpa+dOrGxqH7pVhY99V9IIkLXqZ+g55R/wrgyGFpYhJHm8xhpPg9v/3ZW/e7Co5I4ooNU7P0TlXvuoqRjI2IswtUnjK9/8Z3PkPRVz/xmaEqs9FDg333JHYQWnZ72vsu2dz4DjvRf+ZElr844HzrXqSpGuSixnwHsMsbsARCRXwGXAnkP7JMxLh/h+lMJ1586vqyk/RGW/+mdhGonHzWwIEQYWvFGRhvPYvHj/8aiTV8fXxVc/Aq6Tv+XjHZT2rmRkj8/SbRyJfsuuCFtq5sVd19OoOcZRhafTfvZX51xi5do9WrCNeuIlyzCER+lbN+9VO6+i9L2h3FYcaLly+he/zGGlr+RaNVKe8RIIOmvmdHxjjTWOmm0YQOhxpdntlEGQT1b2ipGFaNcfNObgIkjLLUBR/2nicg1wDUALS0tOThs5ix3SSoTxXdLIRGoY//5P6R87/+x9L4PAzC48i1Z7WPouDfQdu7XMe70k0B7gvs5cN63GTz+8lmXmv19z+Pve561t56GIxEmHlhE34nvY3DFG4nUnDTr/c8HOiWeKka5iHSTfbOPajxsjLkBuAFgw4YN+W1cPA8NH3cJ4ao1+AdeIl7SkDZ9osSuGU56yjnw6v/JOIhuf+sDWN7K9AmzMLDyLQwuf2NG1SELjY4To4pRLgJ7G4dPLN8MHMzBfo85SV91xmmj5csA6D3x/VmVjHMd1AEOnvPVnO+zEGIli/GMZvfVdWiJXRWhXBQ3ngJWishxIuIBrgDuTrONmkQ4dQ8gXpqmlQ35qwLoX/tuAJKe0rzsP1eilasAGFiZuwHRtr/9MZ5/7/a06YzTvtGcKG/O2bGVyqVZl9iNMQkR+SjwF+zmjj81xmQ/tm4+pdqJmyKvJug843P0nvSPJAL106ZzOoSKpSfBZohUrcpo3/2rr2BgVfpp37o2fNZujZOBpLss4zFrQnWn0H3qJ9Km23f+j7AymMM06avkuQ/sz+jY297xZGZXNQ4nxpH+2JanlD0X/RJpfhnZDxChVP7l5G6iMeYe4J5c7GtaZ1wDT2Y//nm49mRipU20n/v1tGkHj7uEqXqwTmR5ygCorqnFXxsgnjTEEhbxpEU09Tw26XHHGV9AktH0GRVJG9RFYFltAPfiN9Nbvpph15Jp04/J5Nyz9eJ7Mv/93n3pHzJKN3zcRTPNzpTG7kfk0mjTK6j06wBgqjiJyfMgSZPZsGGD2bRp04y23dEVJJrhBM55ZSxWbPoygUuvhyluoFmWIZa0iCUt9veFZj0elQi01AQo99kBpWs4QvdwBj8YKi9qyzw0VqQv4SuVKyKy2RizIV264mv/N1+Ig+D5/0VgmlYRDofgczjxuY/uOToTiyv940FdFZ4OAKaKlX4z58hsb3bWl3upLvGkT5gD9eXegg1uJQJLawNUl3rwuIr766mdk1Sx0hL7HFlSHaC1d3RG1TFVJW4ayjPo8p8jfo+T40tK2d8fIhRNP1l3rpX73ONXJpF4kmAkwUg0wWg0ke/h1bOiwwmoYnXMBHanQ/C5HThEcIggYi+z39vVJmOvD/SHc378Uq+LhnIfnUOR9IknKPO5aKqc+3pct9PB8toSOoYi9I3E5vz4Y3xuuyqrrsyLZRmCUTvIByNx4oncRnmf20E8acbHxU9HBwBTxeqYCexlPhdLqtN3uYf8BHaAujIv4ViSoXA8o/R+j5OW6gBSoK75IsLiSj8Bj5O2gfCMS8s+t4OqEg8dg9n9qB3J4RAq/G4q/G7AT08wetgPpcspeFwOPE4HXpfDfp16v63j6KGBwf5xrwy4qQp48Huc7OoOEo5pYFfz2zET2ItFc5WfSCKZtmWPx+VgWU2gID0bHUf8kFQGPPjcTvb1hYglMm+RJAL1ZV7qyryEYrmv0inzufC4AnYQdzoy/qxE7G0rAx7Kfa7DfjjL/W78HsNYa7GJP2Zjrw12qV6rYlSx0sCeoYlVN06HXZr1zOAf2+EQWqoD7O4ZwZoiRjodwrLawJwHjjKfi/pyLwHP0V8Ln9vJ8fWlHOgPEYykn97O73HQXBXIukVQNhcnY9U0mae3rxwq/e4pP9v6sszuZUTic3/vQalMzbvAXl/mJZa0wIBl7NKTZcAYgzH2HKDjzxxank0rj5UNpYjYJVenSM5LzT63k+aqAPv7QketG+uA5HXlpolkJir8burLvWmDpP2DUzJt+3kRu1VNXak3qyokr9tBVcBDVSA/zTmPry/F78ndZ6rVMKqYzbvAXhnIf5O/XLU7n06F301dmZee4OEBsqHcN2mJebb8Hgfh2KFLBJFDecj2fBvKffg9Tg70hw676vB7nDRX+TPe31geqks8lHjz+1XMZVAHbRGjitu8C+wLSUO5l1AsweiEJoW5LgmKQGOFD5/byZ6eUUSgMmAH9NlcFZT73KyoK2Vn1wgidrCvK/NmtK3X7aA6TZWIUmrmNLAXkIhd376rZyTnTffAvgHbUh3A73ESjiWpKfVQW+rNWccft9NBwGuX0tP9SIz9oMxF6VypY53+hxWYy2kH3z09M+u8NJUKv5umKv94j1e/x4nfk9v28E6HsKIus+F9Ax4XgWr9uik1F/Q6uAgEPC4aK3LTs1QEFlf6aKkJ6LRtSh2jtAhVJGpKZ9/We2LVi1Lq2KWBvYg0VfqJZtEBaKIjq16UUscuDexFxOGQrEvbIrCowkdtaWYtUpRSC58G9nnM43Swoi63HW+UUvOfBvZ5rGqOxmdXSs0v2ipGKaUWmFkFdhH5soi0i8iW1OPiXGVMKaXUzOSiKuZ6Y8w3crAfpZRSOaBVMUoptcDkIrB/VES2ishPRaRqqkQico2IbBKRTT09PTk4rFJKqcmISTNAiYj8DVg0yarPAxuBXsAA1wGNxpj3pzvohg0bzKZNm7LPrVJKHcNEZLMxZkO6dGnr2I0xF2R4wB8Df8wkrVJKqfyZbauYxglvLween112lFJKzdZsW8V8XUTWY1fFtAIfnHWOlFJKzcqsArsx5l25yohSSqnc0OaOSim1wGhgV0qpBUYDu1JKLTAa2JVSaoFJ20EpLwcV6QH2zXDzWuxOUccSPedjg57zsWE257zUGFOXLlFBAvtsiMimTHpeLSR6zscGPedjw1ycs1bFKKXUAqOBXSmlFpj5GNhvKHQGCkDP+dig53xsyPs5z7s6dqWUUtObjyV2pZRS09DArpRSC0zRBnYReb2IbBeRXSJy7STrvSLy69T6J0Rk2dznMrcyOOdPi8iLqRmr7hORpYXIZy6lO+cJ6d4iIkZE5nXTuEzOV0Telvo7vyAiv5zrPOZaBt/rFhF5QESeSX23Ly5EPnMpNaNct4hMOpS52L6b+ky2ishpOc2AMaboHoAT2A0sBzzAs8AJR6T5CPDD1OsrgF8XOt9zcM6vBgKp1x8+Fs45la4MeBh7xq4Nhc53nv/GK4FngKrU+/pC53sOzvkG4MOp1ycArYXOdw7O+5XAacDzU6y/GD9FMvMAAALiSURBVPgTIMCZwBO5PH6xltjPAHYZY/YYY2LAr4BLj0hzKXBT6vVvgPNFROYwj7mW9pyNMQ8YY0KptxuB5jnOY65l8ncGe9rFrwORucxcHmRyvv8IfM8YMwBgjOme4zzmWibnbIDy1OsK4OAc5i8vjDEPA/3TJLkUuNnYNgKVR0xcNCvFGtibgAMT3rellk2axhiTAIaAmjnJXX5kcs4TXY39iz+fpT1nETkVWGKMWQjTLmbyN14FrBKRx0Rko4i8fs5ylx+ZnPOXgatEpA24B/jY3GStoLL9f8/KbGdQypfJSt5HtsvMJM18kvH5iMhVwAbgvLzmKP+mPWcRcQDXA++dqwzlWSZ/Yxd2dcyrsK/IHhGRdcaYwTznLV8yOed3AD83xnxTRM4CfpE6Zyv/2SuYvMavYi2xtwFLJrxv5ujLs/E0IuLCvoSb7tKn2GVyzojIBcDngTcaY6JzlLd8SXfOZcA64EERacWui7x7Ht9AzfR7fZcxJm6M2Qtsxw7081Um53w1cDuAMeZxwIc9UNZCltH/+0wVa2B/ClgpIseJiAf75ujdR6S5G3hP6vVb/v927hAnYiAK4/h/7rAH2ODgBHgSBAKNwmD2DjgOgENwAgSGrCYEgyGITTZZQQgCsyGo1YgP8UYQBNtAmaGT75fUNE3zXmf60sybFLhR7koM1Nqc87LEOVHUh772CmtylrSSNJI0ljQm+gr7kh7qhPtrXeb1FdEkJ6U0IpZmnotG2a8uOb8AOwAppU2isL8VjbK8KXCYd8dsAytJy97uXrt7/E1XeQ94JDrqx/ncCfFiQwz+JfAE3AMbtWMukPM18ArM8jGtHfNf5/zl2lsGvCum4xgn4BRYAHPgoHbMBXLeAu6IHTMzYLd2zD3kfAEsgXfi6/wImACTT+N8lp/JvO957V8KmJk15r8uxZiZ2Q+5sJuZNcaF3cysMS7sZmaNcWE3M2uMC7uZWWNc2M3MGvMBUPEckGKgtl0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "lower, upper = rf_dr_cate.effect_model.predict_interval(X)\n",
    "plt.title(\"CIs for CATE: Coverage: {:.2f}\".format(np.mean((lower <= true_fn(X_pre)) & (upper >= true_fn(X_pre)))))\n",
    "sorted_ind = np.argsort(X[:, 0])\n",
    "plt.fill_between(X[sorted_ind, 0], lower[sorted_ind], upper[sorted_ind], alpha=.2)\n",
    "plt.plot(X[sorted_ind, 0], true_fn(X_pre[sorted_ind]), label='true')\n",
    "plt.plot(X[sorted_ind, 0], rf_dr_effect[sorted_ind], label='est')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Ms4tt9zCJ5980tOzsUMWLVrEI4880tOzsUtTSCYiIiIi0gmuueYatm7dmrHTExERkdYpJBMRERERERERkawX6OkZEBERERHJFJs2beLJJ59kw4YNlJSUcPTRRzNx4kTANlHcY4892GeffQB49913efvttzn33HO55557ALjjjjswxnDSSSdRXFzMI488wv7778+rr75Kbm4uRx55JHvssccOTW/q1Kmx+QyFQvzud7/j3HPPZdCgQQDU1tZy8803c9lll+Hz+Xj00UdZu3YtkUiEkSNHMnPmTILBYIvXvGjRIrZu3copp5wCwPbt27nlllv45S9/ic/no6GhgWeeeYZVq1ZhjGHvvfdmxowZ+Hz6vV1EeqcvvviChQsXUl1dzaRJk5g5cyaBQID6+vpWj63vvvsuL774IrW1tRQWFiYc89955x1eeeUVampqGD58OCeeeCJ9+vRp8dz3338/EyZM4IADDojdd8cddzBjxgwmT57MwoULWbZsGY2NjfTr14/jjjuOsrKyFtNZs2YNjzzyCJdffnnsvltuuYWTTjqJMWPG4DgOr7zyCm+99RYNDQ2MGTOGmTNnUlBQ0NmLc5eidzYRERERESAcDvPggw8yduxYfvrTn3L88cczf/58Nm/e3OZjzznnHAB++MMfctVVV8UCrZqaGurq6rj88sv5xje+wRNPPLFT03MFAgEmT57MBx98ELvvww8/ZNSoURQVFeE4DnvttReXXXYZl112GYFAgKeeeqrdy8Lrsccew+fzcfHFF3PBBRfw8ccfqz8zEenVPvjgA8444wwuueQStmzZwksvvQTQ6rG1qamJhQsXcvrpp3PVVVdx3nnnMWTIEACWL1/O4sWL+da3vsUVV1xBWVkZ8+fPT/nc06ZNSzi2b9q0icrKSsaPHw/A8OHDueCCC5g9ezbTpk3joYceIhQKdfg1vv766yxfvpxzzjmHH//4x+Tn5/Pkk092eDq9jUIyERERERFg7dq1NDU1MX36dPx+P6NHj2bChAksXbp0p6b7la98hUAgwKhRo5gwYQIffvhhp8zvtGnTEubtgw8+YNq0aQAUFhay++67k5OTQ15eHocffjhr1qzp8HPU1NSwatUqjjvuOHJzcykqKuKggw7a6WUiIpLJDjjgAEpLSykoKODwww+PhVZtHVuNMXz55Zc0NzdTUlISq/R98803mT59OgMHDsTn83HYYYexYcMGtm/f3uK5J02alDDs/fffZ/LkyQQCtiHgHnvsQWFhIT6fj0MOOYRQKNSuH1+Svfnmmxx55JEEg0ECgQAzZszgo48+IhKJdHhavYmaW4qIiIiIANXV1QSDQYwxsfv69OlDVVXVDk8zPz+f3Nzc2O3S0lKqq6t3aj5do0ePprm5mbVr11JcXMyGDRuYNGkSAM3NzTz99NOsXr2ahoYGABobG4lEIh1qJllZWUkkEmHu3Lmx+xzHSdlsU0Skt/Ae47zH7daOrbm5ucyaNYslS5awYMECdtttN7761a8yYMAAKisrefrpp3n22Wdj03Uch+rq6hZNLvPy8mI/0EyfPp2lS5dy4oknxoYvWbKEt99+m+rqaowxNDY2UldX1+HXWFlZyT//+c+E9zyfz0dNTU1WH+MVkomIiIiIACUlJVRVVeE4TuxLQ2VlJf379wcgJyeH5ubm2Pg1NTVtTrOhoYGmpqZYUFZZWRmrLNiR6XkZY5gyZQpLly6lqKiICRMmkJeXB9gvUVu2bOF73/teLEC78847U06ntfkIBoP4/X6uuOIK9UEmIlnD++NIZWUlJSUlQNvH1nHjxjFu3Diam5t54YUXWLBgAeeeey7BYJDDDjss1j9ZW6ZOncqLL75IWVkZoVCI0aNHA1BRUcErr7zCmWeeyaBBgzDGcMMNN6ScRvKxPRKJUFtbG7sdDAb5+te/zsiRI9u/YLKA3ulERERERIARI0aQk5PDK6+8QjgcZs2aNaxYsSLWH9iQIUNYtmwZzc3NbN26tUW/XMXFxWzbtq3FdBctWkQ4HKaiooKVK1cyZcqUnZqel9vk0tvUEmzfOIFAgPz8fOrr61m0aFHaaQwZMoSKigoqKytpaGhg8eLFsWElJSWMHTuWZ555hsbGRhzHYevWrTvUdFNEZFfxxhtvUFVVRX19PYsXL469D7R2bK2pqWHFihWxcXJzc2M/Luy33368/PLLfPnll4D9AaW1pvfjx49n+/bt/Oc//2HKlCmxH26amprw+XwUFRURiUR48cUXaWxsTDmN/v37EwqFWLlyJeFwmJdeeolwOBwbvt9++/HCCy/EmnXW1tayfPnyHV9ovYQqyUREREREAL/fz7e//W2efPJJFi9eTDAY5OSTT2bAgAEAHHzwwaxbt44bb7yRwYMHs8cee/DJJ5/EHj9jxgweffRRQqEQJ554IkVFRRQXF5Ofn8/cuXPJyclh5syZOzw9N1zzGjFiBLm5uVRXV8c6dQY46KCDmD9/Pr/97W8pKSnh4IMPTvvlZ+zYsUyZMoU77riDwsJCDj30UFasWBEbfvLJJ/P8889z22230djYSN++fZk+ffrOLWwRkQw2bdo07rvvPqqrq5k4cSKHH3440Pqx1XEclixZwiOPPIIxhiFDhnDCCScAMHnyZJqamnj44YeprKwkLy8vduxNxT05yzvvvMNRRx0Vu3/s2LGMGzeOW2+9lZycHA4++GBKS0tTTiM/P58TTjiBBQsW4DgOhx56aEIzyoMOOggg9jqLioqYOnVqrNl+tjKO4/T0PIiIiIiI9IQu/SC8Zs0aHnnkES6//PKufJpMZNoeRUQkIygQab+sOLaruaWIiIiIiIiIiGQ9hWQiIiIiIiIiIpL11NxSRERERLKVPgh3jaxokiMivYLeB9ovK47tqiQTEREREREREZGsp5BMRERERERERESynkIyEREREclWG3t6BnohLVMR2ZXomNU+WbOc1CeZiIiIiEjn2dU+XGdFHzMiIiLtoUoyERERERERERHJegrJREREREREREQk6ykkExERERHpRqeeeirGGIwxzJo1q9Vx586dy5FHHsnw4cPJy8tjxIgRnHrqqXzwwQctxl26dCmnnXYagwYNIjc3l6FDh3LSSSdRW1vbVS9FRESkV1GfZCIiIiIinafVD9f33HMP5557buz2N7/5TR5++OG0448aNYqKigpGjBhBYWEhK1euBKCoqIilS5cyatQoAJYsWcIxxxxDXV0dhYWFjBs3jsbGRj7++GPWr1/PgAED0j2F+iQTERGJUiWZiIiIiEg3+Pjjj7n44os5+OCDGTFiRLsec/755/Ppp5/y+eefs2LFCubOnQtAbW0tjz76KACO4/C9732Puro6jj76aNatW8d7773H8uXLqayspF+/fl32mkRERHoThWQiIiIiIl0sFApx+umn4/P5eOCBB/D7/e163NVXXx2rFgM44ogjYtfz8vIAeP/99/noo48AKC0tZZ999qGkpIRDDjmEN954A59PH/lFRETaQ++YIiIiIiJd7Nprr+X111/n9ttvZ/To0Ts8nVtvvRWA/v37c+qppwKwYsWK2PD58+cDkJuby6uvvsqxxx7LO++8sxNzLiIikj0UkomIiIiIdKE333yT66+/njPOOIPTTz99h6bR1NTEmWeeyd/+9jeCwSCPPfYYAwcOBGyVmuvYY49l9erVLF++nKKiIpqbm/nTn/7UKa9DRESkt1NIJiIiIiLShZYuXUo4HObhhx+muLiY4uJiPvvsMwAee+wxiouLqaysTPv4zZs3c9RRR3HfffcxdOhQFi1axPTp02PDhw8fHru+7777Yoxh4MCBsYq1NWvWdM0LExER6WUUkomIiIiIdIOGhgZqa2upra3FPcN8OByO3T7qqKOYNGkSV155Zewxy5Yt48ADD+Tll19mr7324o033mDvvfdOmO4BBxxAaWkpQKxp5ZYtW2Lh2IQJE7rh1YmIiOz6FJKJiIiIiHShs88+G8dxEi5lZWUAfPOb38RxHPr06cPHH3/MihUrWL9+feyxJ598Mp988glgm1XOmjWLgw46iIMOOoi77roLgIKCAn79618D8PTTTzNu3DgmTpxITU0NpaWlXHrppd38ikVEZEdUV1c71dXVTk/PRzYL9PQMiIiIiIhIag0NDbHrS5cuTRh23HHHxa5fdNFFlJaWctNNN7F8+fJYx/433HADY8aM6bb5FRER2ZUZt9RbRERERER22q724dr09AyIiIjlVpGVlJTo2NxD1NxSRERERERERESynkIyERERERERERHJegrJREREREREREQk6ykkExERERERERGRrKeQTEREREREREREsp5CMhERERGRzrOxp2egA3aleRUREelygZ6eARERERGRXmRIZ0+wurraASgpKTGdPW0RERGJUyWZdApjzKnGmA+NMRFjzH5Jw640xqw2xqwwxnw1zeNHG2NeN8asMsb80xiT2z1znp2iy/jd6GWNMebdNOOtMcZ8EB3vze6ez2xljLnGGPOFZx0dn2a846L71WpjzM+6ez6zlTHmRmPMcmPM+8aYR40xfdKMp/2nG7W1Pxhj8qLHvtXR95tR3T+X2csYs5sx5j/GmGXRzwuXpBhnhjGm0nPs+2VPzGu2auuYZaw/RPeh940x+/TEfGYrY8xEz77xrjGmyhhzadI42oe6kTHmr8aYL40xSz339TPGPBf9TvOcMaZvmseeFR1nlTHmrO6b6+ySZh3pc1yGSLN+evx7kEIy6SxLgVOAl7x3GmN2B8qBKcBxwO3GGH+Kx88BbnYcZzywDTiv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D/Urfb9IgOgy6QQ8AN6/Jvasnj9hdQbe8ZkCZ2lXKxSfD4o7x7U7d/7qes/8LRtP/pBe6v4EZxA+uf7s2lpERM6/v890y0DmTKqJN4b835luGQjOZrql/G9YtNk73bKMK82JlLRhL3AyDbjq4vNdE/m/4PuNvDqlplvKuTB2Gi/qISIi8j/q9RWu8z7d8o+ubikiIiIiIiIiIvI/T0EyEREREREREREJeAqSiYiIiIiIiIhIwPt7XN1SMtGy3vmug/iqHQ8EKYYcEOpWBcJ0dS85S9WjAafjfNdC/q9oUB2ICDvftRARERGRs6SF+/8+tCFERERERERERM4tLdwvIiIiIiIiIiJythQkExERERERERGRgKcgmYiIiIiIiIiIBDwFyUREREREREREJOApSCYiIiIiIiIiIgFPQTIREREREREREQl4CpKJiIiIiIiIiEjAU5BMREREREREREQCnoJkIiIiIiIiIiIS8BQkExERERERERGRgKcgmYiIiIiIiIiIBDwFyUREREREREREJOApSCYiIiIiIiIiIgFPQTIREREREREREQl4CpKJiIiIiIiIiEjAU5BMREREREREREQCnoJkIiIiIiIiIiIS8BQkExERERERERGRgKcgmYiIiIiIiIiIBDwFyUREREREREREJOApSCYiIiIiIiIiIgFPQTIREREREREREQl4CpKJiIiIiIiIiEjAU5BMREREREREREQCnoJkIiIiIiIiIiIS8BQkExERERERERGRgKcgmYiIiIiIiIiIBDwFyUREREREREREJOApSCYiIiIiIiIiIgFPQTIREREREREREQl4CpKJiIiIiIiIiEjAU5BMREREREREREQCnoJkIiIiIiIiIiIS8BQkExERERERERGRgKcgmYiIiIiIiIiIBDwFyUREREREREREJOApSCYiIiIiIiIiIgFPQTIREREREREREQl4CpKJiIiIiIiIiEjAU5BMREREREREREQCnoJkIiIiIiIiIiIS8BQkExERERERERGRgKcgmYiIiIiIiIiIBDwFyUREREREREREJOApSCYiIiIiIiIiIgFPQTIREREREREREQl4CpKJiIiIiIiIiEjAU5BMREREREREREQCnoJkIiIiIiIiIiIS8BQkExERERERERGRgKcgmYiIiIiIiIiIBDwFyUREREREREREJOApSCYiIiIiIiIiIgFPQTIREREREREREQl4CpKJiIiIiIiIiEjAU5BMREREREREREQCnoJkIiIiIiIiIiIS8BQkExERERERERGRgKcgmYiIiIiIiIiIBDwFyUREREREREREJOApSCYiIiIiIiIiIgFPQTIREREREREREQl4CpKJiIiIiIiIiEjAU5BMREREREREREQCnoJkIiIiIiIiIiIS8BQkExERERERERGRgKcgmYiIiIiIiIiIBDwFyUREREREREREJOApSCYiIiIiIiIiIgFPQTIREREREREREQl4CpKJiIiIiIiIiEjAU5BMREREREREREQCnoJkIiIiIiIiIiIS8BQkExERERERERGRgKcgmYiIiIiIiIiIBDwFyUREREREREREJOApSCYiIiIiIiIiIgFPQTIREREREREREQl4wee7AlLMON8VEBEREREREREJVMokExERERERERGRgKcgmYiIiIiIiIiIBDwFyUREREREREREJOApSCYiIiIiIiIiIgFPQTIREREREREREQl4CpKJiIiIiIiIiEjAU5BMREREREREREQCnoJkIiIiIiIiIiIS8BQkExERERERERGRgKcgmYiIiIiIiIiIBLz/B8H7h3ZZR0BLAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1440x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import shap\n",
    "import pandas as pd\n",
    "from copy import deepcopy\n",
    "from sklearn.ensemble import RandomForestRegressor\n",
    "\n",
    "Xdf = pd.DataFrame(X, columns=X_data.columns)\n",
    "# explain the model's predictions using SHAP values\n",
    "explainer = shap.TreeExplainer(rf_dr_cate.effect_model.forest)\n",
    "shap_values = explainer.shap_values(Xdf)\n",
    "\n",
    "# visualize the first prediction's explanation (use matplotlib=True to avoid Javascript)\n",
    "shap.force_plot(explainer.expected_value, shap_values[0,:], Xdf.iloc[0,:], matplotlib=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl0AAAFvCAYAAABw2H4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XeY3cTd//33SKds7+7G3ab3wfQODvUmoZcUWkhyk0BCEkIChBJuwo+WQCA89BJISAiETmx6Lx4DNgYb917X28tp0jx/SLs+Xtb2umz193Vde1lHGkkj+ew5H82MtMpaixBCCCGE6FxOd1dACCGEEGJbIKFLCCGEEKILSOgSQgghhOgCErqEEEIIIbqAhC4hhBBCiC4goUsIIYQQogtI6BJCCCGE6AISuoQQQgghuoCELiGEEEKILiChSwghhBCiC0joEkIIIYToAhK6hBBCCCG6gIQuIYQQQoguIKFLCCGEEKILSOgSQgghhOgCErqEEEIIIbqAhC4hhBBCiC4goUsIIYQQogtI6BJCCCGE6AISuoQQQgghuoCELiGEEEKILiChSwghhBCiC0joEkIIIUSvpJRaoJTapc08o5Q6TCl1vVLqjA5s41ql1K2dV8u1Il2xEyGEEEKIrmSt/X1316EtaekSQgghRJ+jlHpEKfXTcLpYKfW0UmqmUup1pdRjbVq3hiilXg6Xv6SUyuuMOklLlxBCCCF6s38rpRJZr8e1U+b3QLW1dgelVBkwBXg6a7kG9gFqgYnAOcD9W7uiErpEb2O7uwJCbIoXXngBgBNPPLGbayJEp1Gds9WT1/28t8+sbz+nWmunt66mlGmnzOHAzwCstVVKqWfbLJ9ora0J1/8YGL251d4Q6V4UQgghRA+k2vxs8cY2dNGe3VLm0UmNUhK6hBBCCNHXvQn8AEApVQqc1B2VkNAlhBBCiB5oq7Z0XQ/0V0p9CTwOvE8wfqtLyZguIYQQQvRAGw9a1toR7czT4eRbWbMbgbOstQmlVBHwHvBoWP7aNuuv83prktAlhBBCiB5oq47PLwVeUUq5QA7wd2vta1tzBx0hoUsIIYQQfZq1dhWwd3fXQ0KXEEIIIXqgznkSRXeS0CWEEEKIHqjvhS65e1EIIYQQogtIS5cQQggheqC+19IloUsIIYQQPZCELiGEEEKILiChSwghhBCiC0joEkIIIYTodLZN6OoLEUxClxBbqLk2zfKFzXw9p5lnZqZ4Y3WcgkyG5miUmvwYf/5OLkeNVqSVy5AiuWFYCCG2VRK6hNgCbz6/EvPbT3EL49QX5VMRjfI/0QhLi/L4ul8pA6qbeez21VxWVkiOo9i7up5/PjiKSKQvXLMJIYTYFBK6hNhEjWsS7H5jLdtVNxDxfXYaVExuNEpOysPLi5CKury441Cao+GvV10hJDIUpDOUNiX57WVzueXOMd17EEII0eP1vYtT6esQYhMdccVyjv90Dh+MHcJru4zkzmPGMyMnB9f3AViVn7M2cAHEXAAaohHqHIfmRY1UNvrdUXUhhOg1LGqdn75AQpcQHWCt5dM5Cc64fCHHTV9IxnFIZQWrVG6EgUvXEEln6NeQIDeVbl2WX5egIpmmJJXh/QFlLC4u5tRfrODEcxdQWZ1ub3dCCCFQbX56P+leFGIjfM/yo3O+pKIhxfBIhOp+Jbw6fCDxVIZkLIKylmFrammKuwxatpJBSvHL1ZV8OmIQi9wYawoKAIhaS0nax3McYr5PTSzGSZctpdz3iZfGueny/oweHO3moxVCiJ6ibwStbBK6hNiIm29awJhFlazpX0ZhbT2vjRzC0sJ8Ln/uPWYNrmD46hqaYlEWDywhlvTISadxPMtRXy2g2nN54KDdAXCsZb811ZSn0ngKamIuw2sasMCC5iJ+dA28fM8gYhFpgBaiL7J1zfj1SVRBHKc4t7ur0+P1lS7FbFsUurTWQ4HFwEhjzIKtUqOtSGv9JXC9MeafGyl3DnC5MWb3rbz/B4CIMebcrbld0fmstXz3koU0LW9kWVEue6kIrvUYu2QVI+Ix3hk+kOf2HMcJU+dQnxPjH+N3oqA+Rcp1iWU8jpu9gAVFBRw2YxHHfT2fWf1KqSrIozzsdnQt9G9KAcG13IDGJhYWFjBtqY8eLqFLiN7Gb0iQfn8etjmNv6geu6wap8jB3voaTnUTYPFxccngkMKSwUehUEAKBx+fKD5xIr8/Aee6U7r7kEQn6NMtXcaYnTtY7gngiZbXWutHgIwx5sJOqprooaYuTvPabTP5ZGEGN20pa07z4k4jmTJ0AL9+czJ+xGH/eUv4cnAFU8YMZtrwgQDkNySJuR4AqYhLVV4OBy1eTkNJHnusXsPuq9dQk59HbXlJ60BKL+sizhK0hF39+8WUJ5Mcf2wxZ/1gUNcevBAd4DWmqZ9WTax/nEX3TGf5YwuIFrkMu2xXlj61kLovqnCa0sSaU7iAj8LBJ4LXGjHAkiaCwhLBI4KPhyWPJKBI42KjUYr/ZzsG/G4/vEW1RMpzyTt4uy4/XmstSq3b4uK9N4f0m3NIfLac9H9mECNJLo34xMJB3xYHcAkurDzi2PC1QxoXDwW4+GSIkKACRYY4tURohuufwV7/FMEnisI6QF4+6ls74Ry2I6o8H3Xk7tC/uCtPRTeQli6xjdNaR40xvX70t+9Zquc3sDCpeP75NXz6ZTPTBpazMieHcmcQSw8o5vq/v8kfTjiQjOtwxRuTGdKYIJ0bx0ln+Mk7n3FHXg5fDC7D9S0Hzl/GFxXlrdsvSSQBaPmsVsBXA0oYWd9MTWEBC4vymVGSz+ELl1OY8Vmdn8/SnCiz8go5etEK7nmjmecmzmJIxOPcnw5m1/HFeL7Fdfreh5DoHtZavKYMbm6EZGWCyrdXsOSJuVR/tAq/3gffgrU4GY+Yb0EpUlEH3wKOA9YnnvaJ+Jb0ap+lF7+LAgpQRLAkiJAJLzF8WgJHQOFRSDMOPh4uCoWDJUEuHhEUPoXpZjJPz2Lp07NI4eLjEglDTBqHDBGceJSCA/pRdvoY/KYUiZfnkfetkeTogaQ+XkrjA1OxS2qxaR+10RuGbfjjE/zGWqKkwykHsLjhax8XBThkcPGJkSRJIZbgTuUoTcSoDyOlS5p4WDqHXKpxWvdlcWmggGCYgQqjWMBF4WJxiPj12AYP+/Rk1NPvh8EugsXHwcO2dsQ5rB107gEWG55xohHUQeNQd10ES6tg/BgoygNrg//PHsh2dwU6wSaFLq31QOA+4FBgJXBz1rIjgRuBcUAGeB24xBizSmt9LPAYMMQYkwrLFwLLgWOB94AbgPOAQmANcJsx5i8bqMsJwEPhNtPhvAJgBXCcMeYdrfUC4CpjzONa69Kw7keEx70Y+Ikx5l2t9blhuTFa68uBc8LtnRnurtgY42mtvw1cDYwO635D2ErWUqfzgSuBfsBzBO/8TAfP7Q+BS4HtgHnAb4wxk8JlfwMGAMcYY3yt9WHA88ABxpjpWuu3gM+BMcBhwELgV8aYVzqwXwv8Ajg3PC4D/NAYMydc3rLtEeG5uxG4SWt9MPBHYCegGvgrcLsxpsf+nrx0/gfM/6wWZS3R5hQZC1effBhVxYOgpU3UWmp9n0tfmUI0EmFobSPzy4sYXN/Yuh0vGuHjYUMoS8Pw+gQLy/OpLs7lkMXLWVBcwPDqOnZZXUVCKVwFUd+SdB3m9yujyG3EcxQzSouYX5RHRVmCveqbKfQtB1fVsyQnzuQh/cn3fD7MzyFuLR8+0sCgu9bw7JB+xBzFJ/+bw65D5HpJbJrk6gTm9LeonVqFTbaTQKxde5UA4CiwEPctjg2Wx1MezbmxsIBL0nFwk0ny/bUfc074Rb/ueByLgw9heMmjmVj4lerhkyAaxodIa+kEUfIJLl5ieKSBlttMXCxpPGLJFLzZyJo3F4TzM9jX51HH2i+3jn8gtYSVtQEknRViFD5xkrj4WDKkieETxcEJj9rNWi8HhcIl0XpWWvaRIU6URiAdzoniY3HIhLVtOZdRHDw8XHziWHLD8xXDpR5FCovT+jAFnwiKKAoPwnAabN8NzljagzdnYHe+PAx3aQjb0vj1KXDzOR0+U12n711kbmq8fYLgf2kYcAjBF3WLJPBTgsCxKzAYuCNcNhFoBE7KKn8WsNgY8y5wNPADYF9jTCGwL/D+RuryCsG78/iseacRhK532yn/ayAPGA6UACcDS9oWMsbcHB7no8aYgvDH01ofDTwI/BwoC+t7l9b6EIAwhNwN/Dhc/ipwxkaOgXDdi4DfEIS9UoLg9ozWuuUJmj8GhgJXaa0HAH8HLjXGTM/azAUE57uEIBj9R2s9oiP7By4CTgX6A18Cz2ut3azl5wN3AsXAnVrrnYGXgVsI/r+PJ/i//14H99flkrUp5n9WC0phHYd0Toyvhvajqjhv3YJKcfLnczhgxkJGLVnNL978lMJkmkRk7elYWVTArKFBt2LU84l4Prlpj1Q8wr7V9YywUFVSiAM8oXfmnbHDeXaPnRhTl0ApRcTCQSuqAJhVsbZ7wAEi4Rff4sI8Mo5Do+vyYf9SqvLjjG1oJoHi9EeaOvt0iT5o7m1fUvNJZfuBC9YNXFnzVFZqUW0TjFJY11lvsHHxiJLJClwAihRxIIgYTeSQIk6mTRuAarPV7L04rR14LWVZpwUq+8Nryx420BK6IIcmXPzWbbphOPJRYcjy1tlrihwSFJEiD9apexpLdmdBOuyQbMtDkSJCMw4JFEmCljEPRS6QgyIO5BCEQi+saduOCAdIhct9VGtLXtad0rc8DbU973Nlm35Ol9Z6CEFLx6+MMbXGmBXAdS3LjTHvGWMmG2My4bKbgSPDZT7wAEEwaHFBOA+CWJ4D7Ky1zjHGrDTGfLqh+hhjPOBvBK1jLc4DHl5Pa0sKKAe2B5QxZpYxZn5Hj5+gFeoOY8y7xhjfGPMJ8Djw/XD594F/G2NeDc/BY8AnHdz2JQQD/qeG234ZeBM4MzzWRoJQ9CuCMDfRGPNwm208m7XvJwharM7u4P5vM8bMMcY0A5cTtHjtm7X838aYN4wx1hjTBPwEeMoY85wxxjPGzATuyjoXnaa+vn7zptv5QslJt9MI6VsOmrmo9WVJXRMlZHhxzx15cbfRPLfHGO4+fA/SjiLhOizPjzF6aRXvlJXxn2GD+dvIwSRdh4aiQmoL88j3HVaVlOA6Lqtzc9buJqzP2NqGoIUBqHMU+b6lf9qjreqcWOs61m7BeZDpbpmOxWKbVL4zplOpta0fmyIVdVs7w1JR9xvLI74Xfp0HghDiECdNHC8cGu61+5WZJpIVthQOXhjU0sSywoMNy7bw6fqup7YhcG2HXhAoLQqntc4qXMPFEqMluFmgmeJvBAi/3VCxNhwH7W/JMDjZrLkt/0ZYN2quW9P1bXedEm4QB7bkPbb1bdvP6Roa/rswa15raNFa703QwrI7QYtS0L2/1oPA1VrrYUARsAdhK5Ux5i2t9e+Aq4B/aa0/BK40xpiN1OlhYJrWuj9Bt+QBrD9o3EIQ7R8FBmmtXyS4Y3HlRvbRYiRwuNb6sqx5Lmtb1YYSBJ1sHQ11I4G7tdZ3Zs2LkNUSZ4z5Smv9JnAi8O12trGgnddDv1msXa3rGmOatNar26zbdtsjgSO01idnzXMIumw7VWFh4WZNx4uijNqzmHkt3YuJFDs0Jtht/nJmDO1P1MtgPUg7DqtLCihuDlqilvYrIZXwWVaaz5yKga3bnV7mk9uYIq8mSV3Wh0F1LMqqeIz+qTRTRo9cZwBuU8SlPhbBAquiDqd+vYhyL+zSsZaobym0EPMtORkvaF1zFK4LhY1JppUXE7c+j5+VQ2Hh2i/xzT0nMt1109mBp7vqsONv96Tx81pqP2+ne7GlazH8qwrZFymZqEvGDV+3jP2xFjfj40VdmiMxcv0UvnXC8U8QxftGa1PLuCMn7Gr0Wkuv5aOI4OOHo5kISzSSg49DNOxS83Bx8MngtI6PcoAIQQD0sERb97upX9dtQ01QsyRRImTCucGNAU7YupUkFo43s+vdXxBGgwBWzWhKmYMD+DgkqCCfFRutmWonMAU1Vnjk4uChiKBaw5+LzQq8wZE5YXBbG2rVDd+DguCicEveY1tbX2ndyrYpoWtp+O9wYG44PTJr+ZPAv4HTjDF14ZirF1oWGmOWa61fImiNKiVomanMWn4fcJ/WOg+4FniGoBtzvYwxM7XWU4Dvhtt8zRjzjS7DsGwjQbfdleHYtMcJglh7rTPtvbMXAo8YY25ZT3WWEox7yjYSmL2hY8ja9jXGmKfWVyB8rMV+BOf4Qa31UWFrX4u2+x5B0AXYEa3rhue/H+t2vbY9HwuBh4wxF3dw+z3CcQ8d0DqdakjT7CuOXJbgq5kN3PJaM3NiuYxaU8uMYeXMGlKOdVz8nAjljUma3HWfqRNNejg+5GTSVOavDUBRz2deXpxIcwIv4pKXztAUDR6gOrgpybM7Dibq+Rwxv5IcJwItY2GUojInxszCXLCWnavqGEcKf1wJ15ycx54jhpJKesTi67uaFWLD4v1yOPCNY1pf+xkP64Ebd0lWJ6j5eDVzbppKzec1wfexn/VrH14YBPMshV6KWDpDgx8nFYnQ7EaIZsKvSGWJ2GDdlgASxCKfYprDr3uX5jCAOHj4YadLMLIpGD/VSByFJY2LiyWHZpqJ4hHFdSy5w/PILKwj7SqKTx6FirsUHjGCgqOGkHhvCWQ8av/wAXb2mmAQfVk8qEh1cgNnqaVND8ALR2t5YfcWJIjjhm1zQTBs+QgOBsl7ZIiEg+3XjV4WrzUGgk+MZirIoxKfKB5xfNzWENdSk9bTH95qoPCzOiKDbkIbTiuayR48r8Lzq8gE8weXoq49DbYfCqMGBXsYWAIRGR/alTp8to0xS8JB1Tdrrc8DcgkGlbcoAmqB+rA164p2NnMfcC+QT9h1BqC13geIA5MJxobV08EB6AStXZcQtHT9en2FtNYnAnOAWUADkNjAPlYA+2mtnbBrFODPwMNa64+ADwhauXYl6Ko0BDcKTAwfN/F2eHzj6Vjo+hNwrdZ6NjCVoKt1b6AyDJY7EgxUP4VgrNsnwDXA77O28e3wZoa3gNOBfeh4d98vwv/bpcBNBAP5P95A+b8Cb2ut/wv8l+DzYRzQzxjzdgf32a1iBVFiQHFRASN3KOD4sO3w9fml/L8/L6ViQRUTvpxPbmOS+H478VzOYHKbUqTiEZx0hljKwwJ7r67kmf6jcFIZnIxP2nX4uKIUU17CPnVNDE2lGNScCIbZWjh0QSW5aZ+ItWQctfaq2FoqmprZq7KGvMIoN19cxv675qxbZwlcYityIm7rN0C8NIcBx2zHgGM2/kgGL+mx5NbPcfvl4CtF46xaInGX2klLyNmxhDUfrCGxpBY3kQkfF2EJwkCUBnyiZFBhe1WGKDaMEkGIyeA6Fs93SBOheK8iRt16KLH+uai4Q3xMWYeOLXZGMFay6JzdNvPsbFjTk9NIf7CQaKlD8g9vgvWJkMQh3dr2psLuxeAuyAYscVIUhVuwQA4ZCnFpQOHTxCCi1OOQIkKGIFSFj6EpLCGSSeAMKIX7f4itTaAO3gHVv7gPtgVl63tHt6kR92zgfoJupJa7Fw8Ol10E3EbQRTiTYLzVgW3Wn0TwTqoluLuxRSFwKzCW4F32BVmhbCOeJAhEzQR3DK7PaIJwMygs+ybtB0MIxpodCazRWiug3BgzKRzwfgvBuDCfYND57wHCuyV/Fq5bTnB34QYfytrCGHO/1jpFECBHElxnfgr8Kmx5egr4kzHmNQCt9WnAx1rrd40xr4abeRC4LDwHi4GTjTHzOrL/sM7PAKPC/Z7UphWtbX2nhy2ZN4R1dggC7c3rW6e3OHJkhCPvGI7vD+PKH0bIm1NDXipJTp5DZV7QouWrKLqhgYUFMUprGoj6PmWeR15Tgvl54R1GSpFb30DFmnoSxQXgKNJKUZjMtHbd+I5DiuBqA6VIu1Em3zMYRx4LIXowN+4y/Mq9v7nghvFdX5luknfmbnBmEOjyrjse3/OwyxvwrYf/xmz8VY3Y/CjqgXewXyzEySTJJQPhHZoxEsRoJHgmWQFRavDIw6JwcxTcfzHqrAPB8yEWXCC26DujmzauL3YvKmu7djhi2KIyyRhzY5fuuA8Lz+lrxpgbNmNdCxxsjHlvq1esc3T5IynOuXYZz6gSElndiMd/tYil8ShTh/ZHWctPP53NcsfhqVHBUDhlLQdV1XLhqwbrKBrzcvhsxxHUFebTpGBGUT5pV3HY4hXMLy6iOhblIKeJe+4a1dWHJzrZCy8EoyxOPPHEbq6J6E7W9/EW1+AMKEBlfFRBzsZX6j06JR0l1U/W+byP23t6fQrr0s7c8PEK+xA82kGIXuHuSyt458Z6luRFQSmKm5OMWV4FAyv43FHE0z55qQzja2opTCRZlp/LmNp60iUlfLrX9uw6fS4V1fUc+eEXJGIxfn/sfiwuyIWoYlF+HqvzYvx8D58fnS+BS4i+SjkOkeEd6x4Vgb7Y0tVloUtrPZng4Z0/M8as7uA6vwN+t57Fx4bP+OrxwkHw965n8Y+yH7DaCft+hbVdwOswxhS0N1+sq6Q0xrTfFnLp3+qYscJDf7mEofUNlCWS+I1NvLLnGGaU5PH2+LHkpD3OmjKLiqYEi0ogkRNj+k4j2WvqbKLpDHV5UaqLcyHm0K8xwSPX9Wf48PzuPkQhhOiB+l7o6vLuRSG2ULe+YeubfY66ZBEDk0ksMKekkKM+m8c9J+xDxg0Gug9fU8svXvqEWeOG40UiqGSKPb6cg1LgeD7/Hr8z1102EL1XIW4P/fMbYuuR7kWxDeiUdNSsfrrO532uvavXpzD5xBdiExTmOtx1eh5L8nJ5a8xQYhmf+yfsRSYrPHkW8psTjJ23iCmFObxZUcLKgjzSSjF7u4EM3KecfXWxBC4hhNjGyAM6hNhE+xzdnylHB9MfLM3jsQsm84/9dqQ+L4ecdIbx81byyU6jmTR6MKvzcihsTjBxj7EMTvnE8hT3Xly+4R0IIYSgL3YvSugSYgscMESx07P7cPacJJXLGvjwgxpWNTaxOC+ffZesZOzqagYcNYDzbhxDQbzvfYAIIURnkYH0QohvKMlRHLJLDuySw8kTSln3DzUIIYQQAQldQgghhOhxpKVLCCGEEKJL9L3QJbdPCSHEVpBc08xbYx7i/f53s/qhqd1dHSF6veAPja/96QukpUsIIbbQy4c/T/lbC4B80uQy98K38YCB5+/ezTUTQvQk0tIlhBBbIFnVROkH84g5lgKaAUjYAtIX/Juvc/6A37zevx0vhNiAvtjSJaFLCCG2wJSD/0k/v5l+fh0DqaaEehQ+RdQzPLmC8ksX4jX63V1NIUQPIKFLCCG2gF1eRU4mQwaH+fEBrMwtpihSS5w0AIWNzcy+LWeddXxreeqLJOf/s5lPFme6o9pC9Hh9saVLxnQJIcRmWv7nj6hxixjgpqh0iqhz8wBYFhvAwuEDGL9kKtWpEioqG5mxOMUv/1XLgvmNzM8vYvuaVawoKGbOy8uY8INduOqIeDcfjRA9Td8IWtkkdAkhxGZYeOsnLLnyU4gUMS86CJx1/xZ7SXMlg5Nz6cdCatPf4k+XzqIi4lKcbmLKi9eTm0mQUQ4nnvlTXn1sOpcftAexmNtNRyNEz9NXWreySfeiEEJshprfvEe9mw9A2omQJornBF8S9aU5HLrsHQCiZFg8YgClnsegZIrhGUXEz7AmnsfiolKuf+t5FuaWcfGJL3bbsQjRE/XF7sUuD11a66Faa6u1HtHV++4IrfWXWuszOlDuHK31Vn8Yj9b6Aa31Ix0s+xetdaXWukFr3X9r10UI8U1+xuPD3Nv5dOxI6grXjtWyCgbZFTQMd1kyuoynx5zIQzudwycD9qQxnr+2nOPSFI1TnmxiZO0a9lm+gOefvYcX9H5cedBjLPh4Mb617exZCNHbSfdiG8aYnTtY7gngiZbXYVDKGGMu7KSqrUNrfQBwPjDCGLO6K/YpxLaudvJiVo1/guayMprjMRL9o6RjCYoaEkScJLtWzWOXGfOYlNAsLQyug8yAvYg0ZyDfknFd6mJR7jjs+5xjXmT0msUA7LZiCalIjJsnnMrER+ax/Z9n8/dx++C6LnsMgKX1sKJRgfUh4oKC3AhMPNPl4OHR7jwlQnSivtG6lU26F3uvUcDyrg5cWmv5hBfbnOafP8ca9Rsax9+Hj6IwFTyPyzqKCB4lTU0UNKaA4GsiJ5NeZ33lKw6e8SHV8TgRFMuL+/Pwvt9pXf7+8LFU5xeQiUSYMnQs7w8ag1IunnWYskIFgStjIQMkPYg4NDsuh/wT1E0p1I1JTn0q1VWnQ4guYdv89AWd3tKltR4I3AccCqwEbs5adiRwIzCO4OPkdeASY8wqrfWxwGPAEGNMKixfCCwHjgXeA24AzgMKgTXAbcaYv2ygLicAD4XbTIfzCoAVwHHGmHe01guAq4wxj2utS8O6H0FwrhYDPzHGvKu1PjcsN0ZrfTlwTri9M8PdFRtjPK31t4GrgdFh3W8IW8la6nQ+cCXQD3iO4DN7g/eQh/u7HohprRuAT4AjN/V8hNt6C/gcGAMcBiwEfmWMeSVcfi1wCPAp8L3w32O11sOA24EDw029APzSGFO/of0J0duk//k56TveJQpEacLDJdWQy+glq0i6EQaubgTAQ7HAGcQIfzk7rZrPzIphRDwPLxrBui6pSC75mRQZN7huqcot4LdHfIc1xcU8sdcBQagCUIqF5QPWvkZB2lv7rWOBhAf50eDTwlqIKJ7+2vLlKo+d+8tgfNE39JVxXNm6oqXrCcADhhF8eZ+btSwJ/JQgcOwKDAbuCJdNBBqBk7LKnwUsNsa8CxwN/ADY1xhTCOwLvL+RurxCEGiOz5p3GkHoered8r8G8oDhQAlwMrCkbSFjzM3hcT5qjCkIfzyt9dHAg8DPgbKwvndprQ8B0FofDNwN/Dhc/iqw0fFk4f5+DMwL93UEm3c+WlxAcN5LCELwf9qMuTuEIDBuB5yitc4B3gC+Imhx2wkYytr/u05TX18v0zLdpdP+yrWvfaCGMgCGVVUzYnUVAFWuRxlDAAAgAElEQVSFOcwYWcGHw3bgldL9+Uptz6xhg2ksyCMdj5FxHFYUFnHWlJdxPY+Il2aXxZ9x037Hcf+OB+LX+0TTWU+ud7K+bKz95mX+ei77VzX2nPMm09ve9Nan2vz0fp3a0qW1HkLQSjTGGFML1GqtrwMmARhj3ssqvkJrfTNBSxTGGF9r/QBBIHgqLHMB8EA4nQJygJ211quNMSsJWtLWKwxCfyNoDXo2nH0e8LAxpr2PsRRQDmwPfGaMmdXxowfgUuCOMCQCfKK1fhz4PvBO+O+/jTGvhssf01r/aBP3kV3XTTofWZ7NqsMTWuufAGcTBDCARcaY21r2o7U+FVDGmN+H85q11lcDH2itf2iM6bS/e1JYWCjTMt2l0/7Ze5G84TVY3YiHi8LH4uDgE8PSTIzl5QWgFFbB9B2GQsyhpKaB6cOHkp9MsaC0EGXz+d+HnmL8IoOyPq71qXdSXHHEmUR8S2F9gtVl4YD7iAJPATYYoZ/dW6mAeHi97NvgktaB0hzL4SNdgobu7j9vMr3tTW9tfbGlq7O7F4eG/y7Mmje/ZUJrvTfBF/vuBC1KCijIKvsgcHXYlVUE7EHYSmWMeUtr/TvgKuBfWusPgSuNMWYjdXoYmBbe7VcIHEAQMNpzCxAFHgUGaa1fBC4PA01HjAQO11pfljXPZW2r2lCgbX3nsxm24HwALGjn9dANLB8JDNNa17SZb4GBwNIOVluIHs+pyKdw8dUk/juTum//nSJqqKcID4cYHhXU4NoyMkRY1q+MWaO2o399PVYpPNelqrCA90f2I+H2550R4zhkwRet2z5x9mdcd/BpFCfTpKNht6AClcyQk07TTDgv7gTNbC7gOkEQS2YAyxX7ORw4zOWEsbGuPjVCdCoJXZuu5ct3ODA3nB6ZtfxJ4N/AacaYunDM1QstC40xy7XWLxG0RpUStMhUZi2/D7hPa50HXAs8Q9CNuV7GmJla6ynAd8NtvmaM+UaXYVi2kWC81ZXh2LTHCYLY99sp3t4fV1sIPGKMuWU91VkKjGgzbyQwe0PHsD6bcz5CbeswAng563XbY1sIzOronZ5C9HYqHiH3pF0Yam+k+vGp1Fw0Edf6eAnFQFZy8KpGppSPY1G8HyPWVBHzgsbe3GSKOQP6k5v2qI/ncORFVzDz1ssYXRVct70/egdyXLCuoq4oyo6rFlPaUM/F2yc4+6r9uvOQhRCdoFNDlzFmSThQ+2at9XlALsGg8hZFQC1QH7ZmXdHOZu4D7gXygZZB6mit9wHiwGSCsWH1bGQAepaHgUsIWrp+vb5CWusTgTnALKABSGxgHyuA/bTWjjGmJaT8GXhYa/0R8AHBdequBF1zhuBGgYnh4ybeDo9vPJsRurbwfHw7vKnhLeB0YB/aD5YtXgRuCFvW/kJwbgYD440x/9nUugvRm5R+d3dKv7s789w/UEiCGGkGNVdzwpKP2bVxHv/Ux7SWzU+kOO7j9/jNpM8Yf+n/kYlGOfDiP/DjjyZRlVfAPftPIOO4VKs8tluxgq/+PLobj0wI0dm6YiD92QRhYDFBt9pjWcsuAi4kCAjPsHbsVrZJBC0ttQR3N7YoBO4EKgnu1JtAVijbiCcJBoAXENwxuD6jCVre6gi62JppPxhCMNYsH1ijta7RWrvGmEkEx3hLWM/lwJ/C/WKMeQf4WbhuFXAM8M8OHkNbW3I+HgQuIzjHvwdONsbMW19hY0wTwd2SOwEzWft/s8dm1l2IXscbWY6PIkFu8BoHp9mnbHVta5n+y6o5ec5/2W5NHUOW1IDns7KohOuOPo2/HHQcGTe47i2pbeDdn5d1y3EI0VP1xSfSK9sLnnwctpZNMsbcuLGyYtOE5/Y1Y8wN3V2XDur5b1ixzZjU736KGxpIejk0FuZQHwv+4LXvOrgpS1GyjkPq3uLNAYfz99MPILWgkmRxOcd9/TF/POoYKvML+fF7r1E6ooQr7zmsew9GiM3XKYlolbp6nc/7/vYPvT559fgn0oePV9iH4NEOQgjRY0xY/UOmRf8IfowVYeACiKXTVJcUsbC8gsLJPtOHj+TxO3cEoK7Z44E3BvE/d7/HPsvmkjlwF867+7BuOgIherJen7G+oUeHLq31ZIKHdv6so09eD8cZ/W49i4/NenxDj6a1PodgLFt7fpT9gNWNbGeD52Nz6iaEWKu+KA9VrcjJpEhEgjsIvbjLshEVxBsSvHjEXgwav/ZZRkW5LpcdXwrHn9hdVRaiV+iL3Rq9ontRiCzyhhU9Ss3kFbx10muU19bjuQ51BXl8MW4EUc8jXtsIu0YYdWaKE0+UkCX6rE5pklqhrlnn836gva7XN3316JYuIYTo6Ur2GcjA6pVMH709tQW5RNMexTWNDLY1HPv6//DaR69vfCNCiG2C/MFrIYTYQvs1/5JD13zJkJVVOL5llF/DyVPPJLdf3sZXFkK0qy/evSgtXUIIsRWMXf4bxnZ3JYToU/pG0MomoUsIIYQQPU5fad3KJqFLCCGEED1OX7xrSsZ0CSFEJ/vUFPGXCz/my6m1Gy8shAD65pguCV1CCNFJampTfHR7IZOWjuSOnBFc88clvH//9O6ulhC9hGrz0/tJ96IQQnQCz7dceoZh2XZD+aBfKQBzC7aj/NlplO++nB3GD+rmGgohupq0dAkhRCc46Cdfcferj0C6bu1MpZhfUML/d+XsbquXEL2FdC8KIYTYqLqGFE8/9hi+n8t1b71ATiYNQL/GJibMWcKYVfU8eo10MwqxIbbNT18g3YtCCLGVvDnuSWrXpKksS3NWogkHy54rVvPeA/fwwug9KE1BLPz6eGdyEz/o5voK0ZP1ldatbNLSJYQQWyjVkOJPo5/jvh1GcvFFE6jwgsB1wyFHU/rbP3LKOeczurIGvXQOu62aSyyTYlF5ESu/qOzuqgvRY/XF7kX5g9eit5E3rOhRmqYs497TPuKU+e8zjPmklcO1R5/D28N34P2BI1rLHT17Fs89eT8AKwtKOO/MCxmyciWPP79vN9VciK2mUxLRAnXTOp/3I+wVvT55SfeiEEJsgZX6Di5hES4+4HDlMWdxy2EnBAsbMq3lHPzW6QENNey8pp50OsnLTy/iuFOGdXGthej5+uIVtoQuIYTogDfOfoNl71dSWFfLwKZKVpdVEFNp9nMrcb2WQOVy7z5HgmfBgUMWr+CTQRUUJ9OcO3Va67bmlw8knqhjaVEBn90+ldKLHqM0ncHNjVHx433JmzAat6EGyouxH83FX1lN7KqTUPFY9xy8EGKrkNC1EVrrqDEm3d316Am01i5gjTH+RgsL0ctZa3lvz+epnVZFQ78cmgpiOI7DgJo0EYopX+1ROcTF9dau0xCNk3TDj1UfKpIJrvlwKgCvb787z+4yliMWriSp4gxszLDjquX46QYaS+KU1jYxYNUK3OsXkL4eqiijlCpiNOFi8W94njQxEhSTIYZbGKPwi18QGV7aDWdHiM7XV8ZxZZPQ1YbWegHwEHA4MB64QGudAK4GRgPLgRuMMU9orSPAYuDHxpjnsrbxKOAZY84PX/8QuBTYDpgH/MYYMylcdi1wMPAxcGG4iXuMMdeEyw8DXjPGRLK2fy1wkDHmqPB1OXAzMAHIAd4EfmaMWbmRYz0XuAq4H/g54AJ/A64wxqS11iOA+WG9fhke/3CtdSVwOXAu0B/4ErjEGDNlI6dXiF5jxqWf0DS1Br8gQl1JDiiF8i1KOWAtMc/Sb7llGcMZyBJcPH591JkkozFIZIg0p2FlM69tN4BVpQV81b8Uz3E4ZO4rVPbvB0BDXh7DVvm4fjUlyTUUsrr1ayZGhgipsFtSAT4OCZIUAy5efYa6nW+jrOGGbjpDQnSuvhi65O7F9v0QuAwoABqBBwlCSRnwA+AurfUhxpgMQUg5r2VFrXUBcArwcPj6IuA3wDlAKXAl8IzWekzW/g4BFgGDgROB32mtD+xIRbXWCniWoPt7F2A4UA/8vYPHOhwYBowC9g/3/6s2Zc4GjgAKgdXA9cBJwDFAOUFInai17vRL7vr6epmW6S6Zrnp3JRaLYy2o4MO/qD6Jm3XzUSQNK0qKWMhYZrMLP3nrA/706EscPH0+GRTP7D2GGifKjDBwbb+mFhuJk626oJDShkYGNqxu8xXzza8cBbikW1/ZxnSPOFcyLdOdQe5e3Aa0tHQZY64PX78IfNLyOpz3FyDXGHOh1npHYCow1BizSmt9PkFL0biw7HTgZmPMY1nrvwB8bIy5IWy1Os0Ys3PW8snA48aYOzbW0qW11sA7QKkxJhkuLwcqge2MMUs2cKznAveG6zaF8y4ELjfGjMtq6TrUGPNOuFwBdcDxLfPC+V8A/88Y83jHzvRmkzes6BJLn5jL9O++hx+HNf3yaMqPUlzTzHYr64kT9Ck2qwhN5T4TKidSSwUL2BUAHzjv7GOZOqQ/Y+sr+e+Tt/PsThP49odf0hSP88zBB+C5LliLpxTf+uolDl40bZ39p8lD4RLJClkZojRQToYcwBLZo4KSzy7rupMiRPs6JRHNVres83k/1v661ycv6V5s34Ks6ZHA4Vrr7E82F3gXwBgzQ2v9KfBd4HaCVq+H26x/t9b6zqx5ESA7DC1vs/9GglaljhgJxIGVQf5qlSBowVpv6AqtaglcoQXA0DZlFmRNVxC0AL6gtc7+hYi2s54QvdaQc0bjFkUwJ71OcWUT+fUuHpaGiEuzHwGlaHYjDGhaSIooTVm/sg6w/aoqVhXl8INpn7Emv4DTPzSkbR75iRSnvvU+Tx52II15edQqH8ePkcHFxcMnQoY80uThksYnAlgyRAGFIoFTmEP8ogPIv/WE7jo9QnSBXp+xvkFCV/uyB4ovBB4xxtyygfIPAxdrrZ8H9gPObLP+NcaYpzazLg2Aq7WOt7RkEXRDZm+/ESjbzAHu/bXWeVnBawTfDGrZ260M93eUMWbyZuxPiF5j4InDOcE/v/V1qiZJJuUz68znWTylCS+SocaJE2tKU8xqVqgROBYUHr8yr3Hn2zU8vvfejKtcQa518IlQyWBIw6jlS/nvbruxz6KZ7PLmj4iMKQeCKzqX4Eoqm9y3KLY1faVLMZuEro37M/Cw1voj4AOCz8NdAWWMMWGZJ4E/AXcCrxpjlmat/yfgWq31bIJuyBxgb6DSGDOzA/v/miB4Xai1vgc4ADgV+DRcboDPgTu01tcaY9ZorfsBRxpjnuzA9h3gJq31b4BBBOO5Hl1fYWOM1VrfAdyqtb7QGDM7HMd2IPCFMWZZB/YpRK8UK4kTA/Z44wz2COdNqriFpBshz2sgmreSubnbU5apoVj5vD1qJLuunEFh0kPhAWn6sZT3B+zDq7vtgutbzvzrvhSHgUsI0bfJQPqNCO8yvAi4haCVZzlBkCrIKlML/Ac4lmBQefb69xPcWfgwUE0wYP5qgu64juy/nqDL8pdALcFdkI9mLfeBbxP8X07RWtcT3Al5WAcPcSGwlGDs1sfAf8P6bsg1wHPAc1rrOmA28GPk/SS2QRMqf820yC4sdYZS3NTM9nULmbzdIPa88Gec8Z3v8u8d9sJXa6/Ya3OiPLv/fixzXHJjjQzZtX831l6InksG0os+peWREcaYMRsr24PIG1b0SM9UPERerYtVsGxQAf/af0d2rfySW1//B4/vdhxnTXubjBPhZxPOYWAiQsqz/PKFg+lXLB0OotfrlEQ0U92+zuf9DvayXp+85LddCCG2gpMrz6dy+kpWvLOEf7zYyGs7jGTklGV8NmRXpo0cz8yhe+A7iqacPD4uUxQ3VkngEmID+krrVjb5je/DtNbDgK/Ws/hx4KMurI4QfV7FLgOo2GUAj/0vPPu7WsyQEZz+9XQAUtFgKHwqHmVFUQGP3T6iG2sqRM8noUv0KsaYRWSNPVuPR7qgKkJsc347/wMe6Lc7E0dsT36ykcZ4Ps2uy4r8PMauWMWAAQO7u4pC9Gh9cSyJhC4hhOgEv/3HsfjHv8Vuc7/iWws/YXbFMKb2H0nF8lH84qXDu7t6QvR40tIlhBCiw377wqFcf4SisMkl12vEbYxz9duH4JS2fQqXEGJbIKFLCCE6ieMo9v5lHXXeaPY/fAL7FkvYEqKjpKVLCCHEJlMuxCVwCbFJZEyXEEIIIUQX6IstXfIEcSGE6CSLp1ez6L0IfqovXrML0bn64hPppaVLCCE6wf/71kTq6qL0q00z0ZRx5PhaCrYr7u5qCdFr9MVLFWnpEkKITlBX47L9yhUMaK7h0LmzuemUD7u7SkL0KtLSJYQQokNGVa0hGcklCSjfY0hjZXdXSQjRzaSlSwghOoGT1TdiHZeCdDPW9sUOEyE6i2rz0/tJ6BJCiK1s1euzsHbdL4kmynnu5xO7qUZC9D59sXtRQpcQQmxln53zLwoy9evMcyx8/Z50MQrRUbbNT18goUsIIbY2qxjUtIp9Kj9lXO0csBaUIuH2567tn+KTK17u7hoK0eNJS5cQQoiN+mLwSPZb8yl7VH/Joas+ZNear/CB8vpm7j16X2Y8s5Jq52xoTHR3VYXosfpiS5fcvdjHaa2vBQ4yxhzV3XURoi9IpTPc8xn8/J1vLnOAmw+G0WtWEbVe6/x+iUom7j6aY6fO5cK3p3DUksngRmgoPI8Cm4QJu8DE67vuIIToBfw+0rqVTUKXEEJkqU1a/jHD8u9ZPm8tBm8TLrF94FfvWIadfSoTbvuY/EwSgL8efARTRwzk2KlzyU1a3h5wAP+z+BUKbDK4gp80HaVODjYysBhm/xUKcrf2oQkhupmErh5Ga10O/Ak4muAe2YnAL4wxVVrrS4BfABVAHfCoMeZ3G9jWGcDvAEdr3RDO3h14B/ipMeY/WWUfA9LGmAu01o8AUYLvkJOA1cAfjDGPZJU/GPgjsBNQDfwVuN0Y01dagcU2yPMth//T47NVW7ARpVhUMZDXh+1FWuUwq2woD44/nGO/mMmQhqUsLRjCmPr5FHjNQfG266+ohYofQOJfW1AJIXq/vjKOK5uM6ep5ngBKCcLMjgQB629a63HATcAJxphCYGfg+Q1tyBjzT+BG4C1jTEH4Mxd4ELiwpZzWuhg4Fbg/a/XTCQJfGfBj4B6t9QFh+Z2Bl4FbgH7A8cBPge9t2aEL0b2WN7JlgSs0sLqele5oqpyhVNTArU9M4pfv/4vhTYsBqI8WbHgDyQxU1W+4jBB9XF8c0yWhqwfRWg8GvgVcZoypNsZUA5cBxxGEGwXsrLUuMMbUGGM+2sxdPQAcrbUeEr4+G5jbZnsfGWMeN8ZkjDGvAk8D54bLfgI8ZYx5zhjjGWNmAncB39/M+nRYfX29TMt0p00PyIMxxT5barvKWrLbsKxyqLcD2Kl2NmWJKuYVjmBy2R546/kI9iMOlBZs0bHItEx39fTW1tPuXlRK7aiUulopdXf4egel1G6btA15QnLPobXeF/gIiBpjMuG8CJAG9gWGEgSefYFpwPXGmEkb2ea1tDOQXmv9EvChMeYGrfUUgq7KO8NljwCuMeZ7WeVvAPYyxhwXrnsEkMzapAMsNsbsvLnH30HyhhWdakWj5YFplqe+9pm2OY/V8n0Onjmfb38yi8JUpnX2rlVfst+aT6mOFrE8byBDm5ZRlA56/S1ZES0/DgvuhYqiLT0UIbpKpySi99QD63zeH2Qv7LbkpZQ6DbgbeAY421pbpJTSwE3W2g7fqCZjunqWxeG/I4A54fSolmXGmE+AZ7TWMYIuv+e01uXGmKYNbHN9l+33An8OA9ROwN/aLB/Rzusl4fRC4CFjzMUb2K8QvdLAfMVV+yuu2r/9VqgHP8tw9duwPNPuYg4b7HDEy5P5YPud+dYXC1rnb9e0lJkVg/i/I77DZe+9REFtAzVOLsV+M2pAEax4ZOsfjBC9WA+7wr4emGCt/VwpdUY4byrBOOkOk9DVgxhjlmmtJwG3aa1/QHD1cBvwClCktW4ZBN8M1BK8JzfWF7ICGKa1jhljUlnzXyIY/P4g8HTYlZltP631WcC/gEOBUwgG9xOu97bW+r/Af8N6jAP6GWPe3oxDF6LXuGDPCBfsueEyH/z6Cw6xS5lVNK513tTSHfloxBgO/2oe0YY4c3IGM2bOtaghFZ1cYyF6p57QpZilP0HIgrV5cJOHm8mYrp7nu0A9MDP8qSEYKxUDrgGWh/MuAU4xxmzs6YpPEbSgrdBa12itRwIYYzyCwLUn6w6gb/EvgrFk1WG5i40x74XrTgdOAH4e1mcV8AjBuDMhtnn18Xx2rf6auBf0wOenG8kQ5divp2CbikkctQvjmu/CkcAlRG8xhW/eLHYm8MmmbERaunoYY8xqguDVViWw/2Zsrxo4cj2L5wOz1tM61WyMubCd+S3b/XAD2xVim1bjFhD3Epy+4DlqY4UsyhvCytx+zCrvzwVfn7HxDQghelpL1yXAJKXUBUC+UmoiQQ/PhE3ZiISubZTWuhC4FLizu+siRF8z9qcH8Je/j+Jbcz+lIZrPzKKx5PpVzBi/XXdXTYheoyeN6bLWzlRK7UDQy/MiQQ/Si9bahg2vuS4JXb2c1vocgkHx7fmRMeaJdtb5OcHzuyYB93Vi9YTYJu18wZ68+I9JmIq1g7+anRJuevToDawlhMjWw1q6sNY2EQy92WzyyAjR28gbVvQK9457GoXT+rWRVvC/X3+nW+skRCfplHT0hnp4nc/7I+x53fnIiHdZz/ePtfaQjm5HWrqEEKITvLHTYI78ajmgsMCqwnh3V0mIXqWHtXQ90Ob1QOAC4PFN2YiELiGE6AR7NjRw72F7MqiukZKGJm6/bsjGVxJCtOpJocta+2jbeUqpp4GHCZ7h1SHyyAghhOgEV7x2NM+dbPle0zROP30p/feW0CVEH7MU2KQ/AyQtXUII0UmGHjOKvPSX3V0NIXqlLf8rqFuPUur8NrPygJMJ/nRfh0noEkIIIUSPY52e073INx+M2gh8APxpUzYioUsIIYQQPY7tQZnLWnv41tiOhC4hhOgk1lqe/Us/po0ZzLP3T2Hgmlr+7/0jurtaQvQK3d3SpZQa1ZFy1tp5Hd2mhC4hhOgk5x9jeGSCBsCMHMS5k79m9ssLGXvc8G6umRA9n+3+W/3mEDyba0PpzwJuRzcooUsIITrJ1O2HcMi0+Vw8cTK+6/D0ATtx/82LuFlClxAbZd3ubemyduvHPgldQgjRCX67338ZPWQIlzz/0f/P3n3HSVWdjx//3Jmd7UvvHURR0dgeyze2iNGIJUZj19jrL2qMiZiv5Rv161cNWGJJsaIEjUaDGuwVEY3CYwHFCAgs0mEpy/bdmbm/P85dmF23zOIsM7s879drXnvmlnOfO7M7+8w5557LZ3uNoLwgl4OWrGZpnk2Sasz2Kv2Nd8YY0wn9dPY8Ri1eRVXPbIaUrCXLj1Paowu9ozHe/eeKdIdnTMaLh7wGj3TyPC/L87wrPc/7p+d573meN73+0ZZ6LOkyxpgUi9dG+WjkIMbO/4YRq9ew2+KljNE5AIQ8mPToyjRHaEzm80MNH2l2D3AJMB3YB/gn0Ad4py2VpP80jDGmk5mbczujV5fQt6Js87JuFZXkVNcSrq0jO1qXxuiM6Rj8kNfgkWYnAmN9378XiAY/fwa0aSqJrUq6RGSQiPgiMmxr9m9vIjJXRE5NYrszRWR2Oxz/ERF5PMlt7xeREhEpF5E+qY7FGLPtxN+by0bvPIaxlgPWziePys3rKrMiPLrzUF7fdUfChYUcdOFSuvx6LV8uqkljxMZkLt9r+EizfGBpUK7yPC/f9/2vgb3aUkmnHEivqqOT3O5J4Mn650GiFFXVC9sptAZE5IfA+cAwVV27LY5pjNl6fjxO/I4X4YulcOcZhNaV4/1gGACxo/8P/9U55JFHLSF8II9KQkRZntWXcNxn7MLl1PbsgR+JsHtZJcXd8tn9b1EeHFPDxQd3Seu5GZNpMqB1K9F/gH2BmYACN3metwl3/8WkdcqkqwMZAaxsLuESEQ8Iq2p024bVPBGJqKr1jZhOzfd9okeOh7fmANFgkp4IHrV4xPAIE336E6JkE8cnTBUedcQpJE42cSBKBJ8wFRSSG3V3kbvgnVk8ceyhVOblAtDF91mencUl08L8+vVSZEgWz5yeS7+ipKf9MabTimdUzsWvgFhQvhr4C1AEXNyWSpJKukSkH/AQcCiwGhifsO5w4DZgJyAKvA1cqaprRGQsMAkYqKq1wfZFwEpgLDADuBU4Lwh+HXCXqt7fQizHAo8FddYFywqBVcDRqjpdRIqBG1R1soh0D2IfE5zvUuAyVX1fRM4NthspIuOAM4P6TgsO11VVYyLyM+BGYIcg9luDVrL6mM4Hrgd6Ay/iJlJrMVEKjncLkC0i5cBMVR0jIj5wFe4+T6Nx/cUfichFuDd9MLAIuFZV30ior8UYW4ijOHg9jwT2BL4OXp9ZwfrHgQhQCxwPPANcJiK7AXfhBhRW4loM/8cSMtMZxPLOI1RTCUQIEcXDxydGHI8QPjHCRCnE/anHCREnTi5x8gCfTeQTI5c86ognzJsY8n1yqmupzMulPBJmSc9CiIQh7FMZz2H1vHL6/zWb4os9hna1IbfGZArf92cllBcAP96aepL9q34Sl+ENAQ4Bzk1YVwNcjks4dgcGAPcG617H3RTy+ITtTweWqur7wBHAOcD+qloE7A980Eosr+ISmmMSlp2MS7reb2L7a3B9sUOBbrjBcMsab6Sq44PzfEJVC4NHTESOAB7FJUI9gngfEJFDAETkYOBPwKXB+jeBVseTBce7FFgUHCvx3iAXBHUUAp+JyMXAtbiksDsuwZsiIiODGFqMMQmX4hK6HsBzwCsiktjXcTLwGu49/k0w9uw9YAru/f4v3Hv530kez5iM5UdjeDXVhIjhAR4+AB5xQsEX3Rh5bJmkOoRPmBDgUYPHRlYwkGIGMZ8hRKjZ/I19cZ8efKI44SQAACAASURBVDykP0sK8nl210FUZgffe4NulKqsMHge98+Kb7PzNSZTZdJAes/zZnued43neYO/Tz2tJl0iMhDXSvRbVS1V1VXAzfXrVXWGqs5S1WiwbjxweLAuDjyCSyLqXRAsA9d6kguMFpFcVV2tqp+2FI+qxoC/4VrH6p0HTFRVv4ldaoGewCjAU9X5qrq4tfNO8CvgXlV9X1XjqjoTmAycHaw/G3hOVd8MXoNJuD7f7+NOVV2oqjFVrQGuBG5R1dlBDK8A7wL1LXKtxdiaR1X1k6A18g9AFXBswvoZqvpMEE9lUO9sVX1QVWtVdTlwexuOt9XKysqsbOV2LZdXucHvPt/9ONmSZtUmLPWDxMwnQhlrGUoVeQDECDNtwI6cdt7xTBh7IA/+5CBi4TCVkSzwEv6JxNyxiupcA/no7tVpfx2sbOW2llMtwwbS34Qb0/WfYJ6uSzzP69HWSpLpXhwU/FySsGxz0iIi++C6F/fAtSh5uBaaeo8CN4rIEKALrgvrGABVnSYi1wE3AP8QkX8D16uqthLTRGBO0OJSBPwQOKOZbSfguseeAPqLyEvAOFVd3cox6g0HDhORqxOWhdnSqjYIN6guUVuSuqYUNxHDn0TkvoRlWWxpsWstxqSPp6q+iHzLlve9uXgOFJGNCcs82nD/qa1VVFRkZSu3ezn6zFX4p96LR5Q4ESCOv3lMV5wsKvHxiJFPmBgecaCOELVkN0jIoIsf55cff0lVOMybfd0FypVZHjVZIfB9qIlBzGdEWRVLuuVz3sgY5+1T2GxsVrZyppZTzffSn2nV833/eeB5z/OKcD1mpwN3e573tu/7P022nmSSrvqR+UOBhUF5eML6p3FdUier6qZgzNXU+pWqulJEXsa1RnUHXlDVkoT1DwEPiUg+LpOcguvGbJaqfi0inwBnBXW+parf6TIMtq3AdcddH4xNm4xLxJpqlWmqTX8J8LiqTmgmnOXAsEbLhgMLWjqHVjSOYwnwe1V9tpntW4uxNcPqC8Hg/SE07IJtKp63VPUYjOmEsk45AE45YMuC2jr8m/9O7LYXgDA+WcQI4VNNlDro053ImlJ8PHqxhCEUsp4elOVncenJP6WotpaLP5zNCR98Sml+Lv97/IHgg1deS0EsSk5dlIV39kzb+RqTiTJsID0Avu+XeZ73FLAR16BzdFv2bzXpUtVlIjINGC8i5wF5uAHb9boApUBZ0Jr1uyaqeQh4EChgS5cYIrIvkAPMwo0NK6OVAegJJuK63Ypw47aaJCLH4e4UPh8oB6pbOMYq4AARCQVdowB/BCaKyEfAh7jWnN1xXZWKu1Dg9WDA+XvB+e3H90u6GrsHuElEFgCzcV2y+wAlqvp1EjG25nwReR74Avg1rsXy5Ra2n4Qb23U+8BSuC3cYsJOqvrYV52dMZsuO4P3f2WT935bvapEmNqvxTqU81J3y7Fw+HTGIS48/Et/zKCGPp2RXTpwzn8n77Ur/NWVszK5lYE0N33bLpWS8JVzGNJbucVyJPM/zcEOtzgBOwDU+PEXDMe6tSnYg/Rm45GgprstqUsK6i4ELcQnTFKCp1pg3cK0lpbirG+sVAfcBJbgrF48kISlrxdO4KRcKcVcMNmcHXMvbJlw3WRVNJ4bgxpoVAOtEZKOIhIMrBC/GtY6V4K4MvCc4Lqo6Hbgi2Hc9cBTuCr+UUdWHcWPlJgIbgG9xiW8kWN9ijEl4CPc+bMAN4D9GVUtbiGcV7qrKn+Fe0w3A87j3w5jtVo7/DN2X3Ercr2JDJGtz98jQklJq8fjLD/emojCPI5euJqdvhHuu6c36O9o8LMSY7UKGjelaAfw1+Hmg7/t7+b4/wff9pa3s14Dn+02NPU+9oLXsDVW9bZsc0CQlcXqNdMeSpG3zC2vM9/DRo/O475m1/H3vPTh75ldcMn020bDHP/feiYWDe7PL2vVMePegdIdpTKq0S0r01OB/NPi8P2PpKWlLvTzP29/3/Y+/bz3bZCKYYOqCfYGHt8XxjDEmnQ64YBRh34dYnBM+m8/XQ3qyYHBPDixewZw+PRjZxaazM6Y1vuc1eKQ1lhQkXLANZqQXkVnASOCKZG91E1zReF0zq8cGc3xlPBE5EzeWrSmXJDN5aQpi+CvugoOm7Nrexzdme9V30yZ2WreB9V3zNo9NKSvIYVBpGRdOOTTN0RmT+TJxIP33tc26F41JEfuFNR3CvJlrOHJKiN89NyO4MRBEQx7Luhbwv7OOTHN0xqRUu6RHk4Y91+Dz/uzikzp8Gmb3mTDGmHYwar8+5FZH+cORB/BV354s7tGVV3YdyfB9u6U7NGM6hAwbSJ8SlnQZY0w7+W35t+Rkw9/3G82/9hjFsfPm8Yu79kp3WMZ0CHHPa/BIN8/zjvA871HP86YGz8XzvDGt7Zeo3cd0GWPM9uqiR/aj8N4Xybq/gqJYHQe9ewKRvKZm+DLGNJZJrVue512Bu+XeI8BJweIq3HRLP0y2Hku6jDGmHRWOCME9RRx13HHpDsUYs/WuAg73fb/Y87xrg2Vf4+7rnDRLuowxxhiTcdI9TUQjRbgJ4mHLBV0RaHSz1VbYmC5jjDHGZJxMmqcLmM5372ZzJfBuWyqxli5jjGkHz+z9D8qiIXqXlRLtHgbrXTSmTTJpTBfudn9TPc+7CCjyPG8e7vaCbfrLtpYuY4xJsSeOfIXqyjDFg4Yxc9c9qa3L4oPff5DusIzpUPyQ1+CRZqtxd9Y5BXc/6nOA/X3fX9WWSizpMsaYFMtZUM6CYUOIex61WVnMHjaa6IPTicdsbl9jkpUp3Yue54WBCiDb9/2Zvu8/6/v+R77vx9tal3UvGmNMKsXj9C1Zz4YehYyav5yon8WKgd3pVprNnf/1LONmnpLuCI3pEDKgdQsA3/djnufNB3oCK75PXZZ0GWNMCn028G7Ke/Zgt3lL2OQXAdB7aRkFNWX0Lt3Ahsoo3fPto9eYDuZJ4CXP8+4FlpFwSzrf999JthL7yzfGmBQqzu7FiLJiymJ9tgzg8DyW9culKtfn4HEr+fKBwWmN0ZgOIf1XLCa6LPh5U6PlPjAi2Uos6TLGmBRZMWE6+676hqLaGspCq5ibk8/yPj35dmgPdPjB1Hl1rC4sYunqagb3zU13uMZktEzpXgTwfX94Kupp94H0IjJIRHwRGdbex9oaIjJXRE5NYrszRWR2Oxz/ERF5PIntHheRR1J9fGNM6qy9dgZFtTUAFMWrKB9SzbXnHca9P94LPwJ7rynl6MUrOOiOTawprUtztMZktkwZSJ9K231Ll6qOTnK7J3F9uoBLgoCoql7YTqEZYzqQ17reTx9y8QEPqPXCXHXiyZQUuBatt3fohyxdzYjScsqz4IDfRckeVsCnvy4gP3u7/yg25jt8L3MmWPA8bykJ47gS+b4/JNl67C/dtImIRFTVvqIbA8RKKyj90b2smh1lEIXk+jXUEsEHPuoymlpvy0dsbSjkJnv0oU91lMW7dIdYmII76qCmgv2GRHjxjGz6FdnHsjGQWd2LwFmNnvfH3QD76bZUkvK/bhHpBzwEHIqbTGx8wrrDgduAnYAo8DZwpaquEZGxwCRgoKrWBtsXASuBscAM4FbgPNw9kNYBd6nq/S3EcizwWFBnXbCsEFgFHK2q00WkGLhBVSeLSPcg9jG412YpcJmqvi8i5wbbjRSRccCZQX2nBYfrqqoxEfkZcCOwQxD7rUErWX1M5wPXA72BF3FfiqNJvrw5IvIwcDJuzpBbVPXBoN5hwIPA/rhsfBFwhqrOa+H1GQYsBi4CxgF9gPeAi1R1TbBNcfAaHgbsB1wAPN3aeRrT2cVe+YySY56ilF6EiZBDDb1ZTQ4bWRPuQ1adz/lvfMZdJ/4X0XCIMQtXEA6+J8/u253sujjxLIjmZUF1lE8WR+l/t8flB/jc/5NIek/OmAyQSV2Kvu+/13iZ53nTgNeAe5Otpz3a7p4EYsAQ4BDg3IR1NcDluIRjd2AAW4J9HZdIHJ+w/enAUlV9HziCYAZYVS3CJRetTfH8Ki6hOSZh2cm4pOv9Jra/BsgHhgLdgBNxl4Y2oKrjg/N8QlULg0dMRI4AHsXdjbxHEO8DInIIgIgcDPwJuDRY/ybQ6niyBCcBU4N9rwjqHhqsuw34FugL9MIlpxuTrPds3Hs1BIgDkxutvwi4GigEXmztPI3ZHtSc+CgVdCdKhFpyyKeSQlaQwya6xtfiAwd9tYxn7vgn9z/2BhuJ8M8hA3hi5BC+yC0kb2M1BSWVZJfVQk6YWCwOHjzwiY/v2ySqxnQANUCbBtinNOkSkYG4VqLfqmqpqq4Cbq5fr6ozVHWWqkaDdeOBw4N1ceARXEtKvQuCZeDu5J0LjBaRXFVdraqfthSPqsaAv+ESkHrnARNVtalPtVrc5GejAE9V56vq4mTPH9fUeK+qvq+qcVWdiUtgzg7Wnw08p6pvBq/BJGBmG+p/R1X/FdQ9BZdU7ZkQez9ghKrGVHWOqq5Ost6bVXWVqm7CJZ5HiMiAhPUPq+pnquqralUS59luysrKrGzlzCjnZREiho/rM4wTIhQ0WnfxS9kxPpeyrrmU9irkvV2HsjAnm2/z8lgfjhCObZnIOlJdB75PUA0hD8rLyzPjHK1s5TaUU85r9Egjz/NuafS4E9fw82pb6kl19+Kg4OeShGWbkxYR2QfXIrMHrkXJw7We1HsUuFFEhgBdcAnFMQCqOk1ErgNuAP4hIv8GrldVbSWmicAcEemD65b8Ie6+SU2ZAESAJ4D+IvISMK4Nyctw4DARuTphWZgtrWqDgMbxtiWpW9noeQXunMAlSzcCU0WkAHgO+G9VLad1xU2UB7Fl5t3E9dD6ebaboqIiK1s5I8rx4v+ja7frqCaHODlUUkg1ReTi/gll1/r0LClnQ/cCarOzGnSV1A+2B4hmh6E2DjlZ4ME/TghnzDla2cptKadaJnUvAo0n16sA7sY17CQt1UnX8uDnUGBhUE5sensalwycrKqbgjFXU+tXqupKEXkZ1xrVHXhBVUsS1j8EPCQi+bgJyqbgusSapapfi8gnuEFw3YG3VPU7XYbBthW48VbXB2PTJuMSsaZacJq659IS4HFVndBMOMuBYY2WDQcWtHQOyVDVtcCVwJUiMgI3Xmwc8D9J7D6MLe9XfXyJr1Hjc23tPI3p9EJdC+ju30vXWIzVFzxP1RMLWMtIYtRQST5r4n2JxOOE4z7DKqrIjsWoDYcJ+T6x7BAxL4Qf8SiIx6nL8ai5oZCscEb9kzEmrTJsIP1/N3Vza8/z+uGGLCUlpUmXqi4TkWnAeBE5D8jDtb7U6wKUAmVBa9bvmqjmIdyA8AKgfpA6IrIvkAPMwvWjlpH8APSJuISkCNci1CQROQ74BpgPlAPVLRxjFXCAiISCrlGAPwITReQj4ENc68/uuK5KxV0o8How3cR7wfntRwqSrmCusZm4VqlSXHdjsq/PjSLyJVAF/AF4W1Vbur9Ua+dpzHYjFA7T//GTWPDvB9i0tJZYXTei0S0D4buUVtGnvIozlyxjWV4eZZEw7w7pS/faWl67oht79rdB88Y0JcNauubjcpjGvsKNbU5KewykPwOXHC3FdTdNSlh3MXAhLmGaAjzbxP5v4FpWSnFXN9YrAu4DSnBXLh5JQlLWiqdx0/QX4lqAmrMDruVtEy55qaLpxBDcWLMCYJ2IbBSRsKq+gTvHCUGcK4F7guOiqtNxA+AfAdYDRwHPJHkOrdkLl8iVA3OBT4E7k9x3Mu69Wgpk891LYxto7TyN2R7tOO9y8qvW0yVrA57nEyHmuhHjPmVeFuX5+eREIqzIyyXkwaq7elvCZUwLMmxy1O8E4HleF5ru9Wq+kky8SiZoLXtDVW9LdyydWcKUEYOb63LNQJn3C2tMIPbNKubu+TjLug5kzg7D2HfON+RV17KoXy+eP3RvFuTnsj4nxNJ7+uCl/5+IManSLr/Md//wnQaf91d/OGab/9EkTIo6gC3jnOv1BP7u+37Sk6Rn3Cx8wbQD++KmdjDGmA4jPLIfa7xurOnZlf3nLKBXqbuOZfcly1n/aYxuw0awqbeH5/VNc6TGmCSdhUsqXwF+kbDcB1b7vt/sXJhNyaikS0RmASOBK4KB4cnscx1wXTOrxwZzfGU8ETkTN5atKZds7cSjIjIXd2FDY0toOH+ZMSYF8k4eSo+3VlFQVbN5WQg4+qu59FtXxykrzkxfcMZ0IBnQpbh5UlTP83r5vl/5fevLyO5FY1pgv7Am483JHs/CfkMYuXQNAHWhEP0j87jjkou4994fpDk6Y1KuXbKjOw+a1uDz/rczfpTWLMzzvD2Bg3ETkG+Oxff9ZGYJADKspcsYYzqD6rwwc3YdwfJ+vcirqmFtz3wia3tYwmVMG2RCS1c9z/Muxl0w9gbu1oSv4i7oa+nivO/InFt4G2NMJ9Hz4bEMXrOSdT26sGxgb2rq4KzrRqc7LGM6FD/kNXik2TjgKN/3TwCqgp8nAXVtqcRauowxJsV2OGVXakvq6Hb/52RHoxTtVkvfMy9Ld1jGdCiZ1NIF9PF9v36MeNzzvJDv+696ntem8daWdBljTDvY5f/twS7/bw+mTp3KpnQHY4z5vpZ5njfM9/1i3ESpx3ueV4KbiDxplnQZY4wxJuNkWEvXeGAX3MTpt+BuaZiNu9tN0izpMsYYY0zGyaSky/f9xxPKr3qe1x3I9n2/vC31WNJljDEptqkiyomXL6Mu5LGb14ejjl+T7pCM6XAyKekC8DyvJ3A00N/3/fGe5/XyPK+b7/tJ39HFrl40xpgUO+fc+Yz5upgx3yyjfFWEN9/oRll1m27RZsx2L5Puveh53qHAPOBM4MZg8Y7AX9pSjyVdxhiTQtXltRwxp5j9Fs5m1xWfsa5HhB8+/wXT+jzCe13vAJuQ2pikZFLSBfwRONX3/aOAaLDsY2C/tlRi3YvGGJNCD+/9OmOLPyArGmfuptFcU/wxedEQOd4mYvh8VvS/7FWe9ATWxmy3/LTnWQ0M833/7aBc/82pljbmUdbSZYwxKZQdh4JYGYv9XehaU0te1H0prvELKQhXEK0uSHOExpit8JXneT9ptOzHwBdtqcSSLmOMSaH/DO7NVYedTszz8Bvdkm5xlyF8OagP1RVtmtrHmO1ShnUv/gZ40vO8J4A8z/MeBB4HrmlLJZZ0GWNMilRWRfloSF+ePXgfjvzf0xn3izFUhrOIA2u75bGia3eKqqJ8MmpCukM1JuNlUtLl+/5HwA+AucBjwGJgP9/3Z7Wlnm06pktEBgFLgeGqWrwtj50MEZkL3KKqz7Sy3ZnAOFXdI8XHfwTIUtVzU1mvMWbbuPiMuawd2Bc/Egbgo50H8eZeQ9l11Xoq87Lpu3EdQ6tWEI206XZtxmyX4ulv3cLzvH6+768C8H1/BW6S1K1mA+kTqGpSd6RV1SeBzfdbEpHHgaiqXthOoRljMlw85lMTyWbXFWvZsaaWndaXsTY/h1F1X/Hjkq8I+zH+udMBnHLcVRxWPJ+L+o/niJN2oOj+n6c7dGMyUuPu+TSZD3Spf+J53hTf90/c2sqse7ETEJFIZzyWMR1B1YZqJvd4gomjnme/Bd/SLxZl13WbyPJ9+ldU822vnelbvZZN+Vlcfvxp7LBhPXP6Dubq089i5SPKCu83bLhiSrpPw5iMkyHdi40P/KPvU1m7tnSJSD/gIeBQYDUJzXIicjhwG7ATbs6Lt4ErVXWNiIwFJgEDVbU22L4IWAmMBWYAtwLnAUXAOuAuVb2/hViOxfXDDlTVumBZIbAKOFpVp4tIMXCDqk4Wke5B7GNwr9NS4DJVfV9Ezg22Gyki43CTpSEipwWH66qqMRH5GW4StR2C2G8NWsnqYzofuB7oDbyIe3Pr5/9o6XV9HIjgLlc9HnhGRK5rLt5W6vKBXwPnBnEqcJGqfhOsnwZ8DgwL6r4NuENEDgZuB3YFNgB/Bu5WVZuEyGw3Ju30T2rjHrHeXdjYtwc12RHe3WUoP52/YvM2nw4YyayBO1AWyePBF57j5C/nUBcK8cB//ZBeNbXEySX2gFLywMdkFWXR5atrCA3qlsazMiYzpHscVyCl/9Pau6XrSSAGDAEOwf1jr1cDXI5LOHYHBgD3ButeBypwCUW904GlQRJxBHAOsL+qFgH7Ax+0EsuruITmmIRlJ+OSrqYSk2uAfGAo0A04EfjOVP+qOj44zydUtTB4xETkCOBR4CqgRxDvAyJyCECQtPwJuDRY/yZwaivnkOhk4DXc6/ebZONtxsXASUAf3CDBf4lIOGH9+cB9QFfgPhEZDbwCTAiOfwzuvfxFG+I3pkP7ctJCauMefsgjFongh8PM7N+bhT2L+KJPV2pDIZZ1yeOLPl14aZcTmTnsSHrVuj+rSDzORbP+Tb5fSRY1uO9bYaJlUWrGTU3reRljGsjyPO8wz/PGeJ43pvHzYFnS2i3pEpGBuJaR36pqqaquAm6uX6+qM1R1lqpGg3XjgcODdXHgEeCChCovCJaBa+HJBUaLSK6qrlbVT1uKR1VjwN9wrWP1zgMmNtM6Uwv0BEYBnqrOV9XFyZ4/8CvgXlV9X1XjqjoTmAycHaw/G3hOVd8MXoNJwMw21D9DVZ9R1ZiqVn7PeO9S1W9UtQoYh2vx2j9h/XOq+o6q+sGxLgOeVdUXg+N/DTyQcG7tpqyszMpWzohyrCa2+bkPTBvSj+q8PIZurOStkf350wE78exuQzm4eBV5UbftVwOGsz6/CIButRWAT4j62wN5rqaK2ow5RytbuS3lVMuQ7sU1uF6yR4PHukbPH2l+1+9qz+7FQcHPJQnLNicBIrIPrqtqD1wLjQcUJmz7KHCjiAzBDWLbk6CVSlWnBd1pNwD/EJF/A9erqrYS00Rgjoj0wXVL/hA4o5ltJ+C68J4A+ovIS7grFle3cox6w4HDROTqhGVhtrSqDcJ15SVqS1JXnMJ4N9elqpUispYt719TxxoOjBGRxMGEIVyXZrsqKiqyspUzorz7+QXMueVzqnOzCMXj/KdnN2R9OWOK1/JJTS1rCnJZH8miKiuh0dj3ifpxsqgihzJqKCJK/TDJKGHiZN98FHkZco5WtnJbyqmWCTPS+74/LJX1tWfStTz4ORRYGJSHJ6x/GngOOFlVNwVjrja3q6vqShF5Gdca1R14QVVLEtY/BDwkIvnATcAUXDdms1T1axH5BDgrqPMtVW2yC05VK3Djra4PxqZNxiU2TbXmNHUn2yXA46ra3IQ8y3HjpBINBxa0dA7NHbON8Ta2OY7g9exNw67Jxue3BHhMVX+ZZKzGdDqhcIhfLD2Fec8s4OOrZrHzyhLm9e3J/mtLkZWldN2wlK5rS5ix80DW5ObQr6yS7us2sbigHwsG5iOLV+HFs1jYvYgdyjaS98lV5O02EC8zxrEYk3aZMGVEqrVb0qWqy4JB2ONF5Dwgjy135gbXelUKlAWtWb9ropqHgAeBAqB+kDoisi+QA8zCjQ0rI4kB6IGJwJW4lq5mZ5IVkeOAb3CXi5YD1S0cYxVwgIiEgq5RcDfHnCgiHwEf4lq5dsd1/SnuQoHXg0Hx7wXntx/JJ13fJ97Gfh28V8uBO4BFuBt5NufPwHsi8hpuXJmPuyCit6q+tzXxG9NRjTp1R0aduiNjpy/nx5NrmF2Yx9FfLqB/yUbeGjmYwcvWse+CVZu3j/sRfvTNYqb1H07oBwM48rVz0hi9MZkrQwbSp1R7D6Q/A5ccLcV1q01KWHcxcCEuYZoCPNvE/m/gWllKcVc31ivCDewuwfWvHklCUtaKp4ERuK7MF1vYbgdcy9smXPdaFU0nhuD6dAuAdSKyUUTCqvoG7hwnBHGuBO4JjouqTgeuCPZdDxwFtDgpayvaEm9T8U8B1uK6e48PxsA1SVW/BI7FXSSwEtfn/TiuhcyY7VLvQwYysmQDu6/dwKC1G3hxlxFMGT2SifvuwWs7DSSvrooeNRvZb91XrMvK56gV/20JlzEtyJAxXSnl+X5mX+EftMC8oaq3pTuWziiYMuJgVZ2R7liSlNm/sGa7tmDueu67tpiBG8uYuNNQ5g/rS4EX5ydz5zPhuZfJ9auJ+iE+HNGX076x3nnTabRLRvTbE75o8Hl/5/O7d/jMK6MnRw2mV9gXeDjdsRhjTGt2HN2DDbFq1nUrojA3AvkRKvJymCK789T+exGPZ7O6axdO+PDcdIdqjEmDjL0NkIjMAkYCV6jq2iT3uQ64rpnVY1ubKDRTBPd2fLCZ1ZckTrCaRF2vAgc3tU5VC5tabozZel/06UdxToSF/RtOcFqRk000FGZZdnf27VOQpuiM6Tgy4erFVMv47kVjGrFfWJPRzj16Fqv69eHLgd1Z3jUfgJGrS3ji0WeJxUJE6mo4oPLqVmoxpkNpl/To6hO/bPB5f/eU3Tp8GpaxLV3GGNMR3X7/KK78/RoOW7yW9fnZ5FVWc+JbyoZYHkW15ey34Yp0h2hMh9AZp4zI6DFdxhjT0fTfoQuFmyoIAV2ro+QR4qGxuzPwpeM5pOoqQrl2z3hjktEZr160pMsYY1Js3F0jWe/HiEbrWFbg85sTF7PnwTajijFt0RmTLuteNMaYFNtlxwKmPrkTAFOn2g2sjdka8c6RZzVgLV3GGGOMMduAtXQZY4wxJuN0li7FRJZ0GWNMO7ntrGn0/mo1WXt3gePSHY0xHUu8fWaiSCtLuowxph38dY+JHDq/BmIhsucX8/bbd3P4Ypufy5hkdcaWLhvTZYwx7WDEt5BdDfl1NeRWRFgd7pnukIzpUOJew0dnYEmXMca0g7AfZ/mQrrwxZg8+PGBndtuwkg/vm5vusIzpMOKe1+DRGVjSZYwxKbbm/cWs7p7Hmt5d6bapnAV9BvD5sFHoY4vSHZoxHYbN02WMMaZV83/yHHuFonQp/sY9H7CCT0eOoKBkU5ojM8akk7V0ks6t4AAAIABJREFUGWNMikW8avKqYpufj1y5kqpQFot69qAuGk9jZMZ0HDamyxhjTKveGL0HX/fps/n5htwC9p61hP6ryzj8vK/SGJkxHYeP1+DRGaQ06RKRQSLii8iwVNabKiIyV0ROTWK7M0Vkdjsc/xEReTzV9RpjMse0bjcSimYxcF0ppXl5LC/sQWlVF7JqfXZYuYl4VRbTX1/JpHc2sXxDNN3hGpOxOuNA+u1qTJeqjk5yuyeBJ+ufB4lSVFUvbKfQjDEdTSzG+qzL8AmTjU8V2cSJMSC7OyfN+Zyc3PVkUUFdvDcL++7Jy4fvQV0ki741dfz4/SJ6Vdcw+rGFzO7TnTV392n9eMZsZzpLopXIuhc7ARGJbKPjeCKyXSXqxjSlesjVRLPOIoc4Pt2ooQc19CSfGgawmNm79WRYxSIGVaxmj8ovee7I0dRF3J9OVk6EwrjPyqIC3ttxMHV52fS+ZgMLS6zVy5hEnXFM1/f6Byoi/YCHgEOB1cD4hHWHA7cBOwFR4G3gSlVdIyJjgUnAQFWtDbYvAlYCY4EZwK3AeUARsA64S1XvbyGWY4HHgjrrgmWFwCrgaFWdLiLFwA2qOllEugexjwleh6XAZar6voicG2w3UkTGAWcG9Z0WHK6rqsZE5GfAjcAOQey3Bq1k9TGdD1wP9AZeBLzgtWjpNd0N+DQ4j7XBMg9YBPxeVScF5/EYcBiwH3CBiMwD7gd2B2LA18AxqrqhhWP9CHgLuAC4Bfda/wu4XFXLg2184CrgF8Do4JgfichFwK+AwUFs16rqGy2dmzGdQfymZwktXUOYGmoYQv1311xqKWIDHw7Yk0g81mCfbhUVlBflAuADNSG3T104THlRHtTF2XdCOev/0G1bnooxGa0z3gbo+7Z0PYn7Bz8EOAQ4N2FdDXA5LuHYHRgA3Busex2oAI5P2P50YKmqvg8cAZwD7K+qRcD+wAetxPIqLqE5JmHZybik6/0mtr8GyAeGAt2AE4FljTdS1fHBeT6hqoXBIyYiRwCP4hKSHkG8D4jIIQAicjDwJ+DSYP2bQKvjyVT1S+BzgkQv8COgJ/BcwrKLgKuBQlxC9yfgjeBYfYN1ta0dDwjj7gr3A2AXXJJ8V6NtLghiLwQ+E5GLgWuDGLvjEsspIjIyieN9L2VlZVa2clrL/ifFhIkBHh4+iWKE6FtWwrQd9mVjbhEA/+nZnz2/Wk6/Nevouqmc4YuXURkJu69g2SGi4RDRUAg/oap0n6OVrbw1ZdO6rW7pEpGBuFaikapaCpSKyM24f/yo6oyEzVeJyHhc6wyqGheRR3D/zJ8NtrkAeCQo1wK5wGgRWauqq3Etac0KEqG/4VrHXggWnwdMVFW/iV1qcYnMKOAzVZ2f/NkDrpXn3iBJBJgpIpOBs4Hpwc/nVPXNYP0kEbkkybon4pK1PyacxzOqWpmwzcOq+llQrhKRWlzyO1hVi4GP2nAu1ya8h/8DvCQil6lq/bXtd6rqwqAcE5ErgVtUtf5ig1dE5F3gNFwLZbspKiqyspXTWg7dfhplL82jgFry2EQlXYgSYRNdKGM3BqxbxEUzXiRa15e14b48sMdP2HV5OT+YXwzA6qJ8yA6+74Y8QtE4+VW17DI4lHQMVrZyJpZTrbNMiJro+3QvDgp+LklYtri+ICL74LoX98C1KHm4lpJ6jwI3isgQoAuwJ0ErlapOE5HrgBuAf4jIv4HrVVVbiWkiMEdE+uC6yn4InNHMthOACPAE0F9EXgLGBQleMoYDh4lI4h1sw2xpVRsENI53Mcn5O3C3iOwNLAB+Dvy40TbFjZ6fh+vqnCEidcBk4GZVTWagSOJ7WAzkAL2ANc0cazjwJxG5L2FZFk20FBrT2Xi7DaZo2XjKB/0KjzqyKSdEhCIq8YlSQR5DSirwgq6Rm995g1cH7E0sO0x1ToS5I4eA79O1vIaIHycr5nP6QRHu/mn7/fMypiPqLOO4En2fpGt58HMoUN8KMjxh/dO47rCTVXVTMOZqav1KVV0pIi/jkoXuwAuqWpKw/iHgIRHJB24CpuBacpqlql+LyCfAWUGdb6lqk4mAqlbgusWuD8amTcYlYmc3sXlTsxkuAR5X1QnNhLMcGNZo2XBcEtUiVd0oIi/gumtnA9+q6r9biklVFwPnA4jI7rgWx8UErYutSHwPh+G6hksS1jc+/yW48WXPYsx2yBvYgyL/bwBEK2ooPe1pCn82mvxTR7Oo72/oVek1GI2y84oNRLM8nj72QGK5Oez/dTF7LFvL13178sIjO9K9wK5PMaaxznj14lb/pavqMhGZBowXkfOAPFxLS70uQClQFrRm/a6Jah4CHgQKcF1TAIjIvrjWllm4BKCMVgagJ5gIXIlr6bqmuY1E5DjgG2A+UA5Ut3CMVcABIhJK6HL7IzBRRD4CPsS1cu0OeEGL3CTg9WC6ifeC89uPJJKuhPN4CjeebWJrG4vIOcCbqroC2BicS7Kv2e0iciGuS/cm4G8J59mUe4CbRGQBLinMBfYBSlT16ySPaUynkFWQQ8+p52x+PvD+M/jqqhkMKy8h268DoB/fsmhAH2qyI1THo3z05CjcyAZjTHNsIP13nYFLjpbiutUmJay7GLgQlzBNYcvYrURv4FpRSnFXN9YrAu7DtbasA44kISlrxdPACLYMMG/ODriWt0247rMqmk4MwY01KwDWichGEQkHV+pdjGsdK8FdvXhPcFxUdTpwRbDveuAo4JkkzwHcVYWVuGRmUivbghtf94mIlAP/xiVsT7a8C+AuhHgZ+AKYh7sS8eqWdlDVh3FXqk4ENgDf4hLubTJ1hTGZLPf8g8iNVfD64D0Ie6XUFFbTI2sFORtDjFrwJQNG2Z+JMcmIeQ0fnYHn+02NMd92gtayN1T1trQGsh2qnzJCVTtS30Z6f2GNScKsott5Xg7kXzsOYW7v3nSrrOK30z+nrLCaO947Nt3hGZNq7ZISHXvhsgaf9y89MqjDp15pnRw1mF5hX+DhdMZhjDGp9PmOI/hywADm9u4NwMb8PJ7Zdxe+LeqX5siMMemUthYOEZkFjASuqJ8ENIl9rgOua2b12ITpGzKaiJyJG8vWlEsSJ1hNwbHKm1n1PvCHVB3HGLPFRZ+eyuzDPoSh/SAYDJwXjbFH6XJA0hucMR1EZ7x6Me3di8a0kf3Cmg7hgqNm8cmg3qwsKqJnTQ1DS8t4/s9DyO2al+7QjEm1dkmPjrpoeYPP+9ceHtjh0zC796IxxrSDwbFaauIh1mRlsZYQey9ZYgmXMW0Q87wGj86gIw2gNsaYDmPMyb3wp6ykduVqulSXc9HE/dIdkjEdSmfsXrSkyxhj2sEhF4/ikIth6lQ3J3SvHe1m1sa0RawTztNlSZcxxhhjMk5nmZsrkY3pMsYYY4zZBizpMsaYdrJuUx3Ll4WpqUt3JMZ0PHHPa/DoDCzpMsaYdnDbk8vYecJG/rhoFx59qS/v/ODmdIdkTIdiVy8aY4xJys3F3ajtmktJ1+7M6zOIeT378Mw5E9n3ifPSHZoxHUI03QG0A2vpMsaYFHt5diXRSPaWBZ5HTjzGwpnL0heUMR1MZ2zpsqTLGGNS7IEPKui7aUODZSu69eKE+bPTFJExHU/Ua/joDCzpMsaYFHttYw550doGyzblFTBz0A5pisiYjieK1+DRGdiYLmOMSTUvwqIefTc/DceiROrq6LexJI1BGWPSzVq6jDEmxfpsWNvgFsCxcBbXTvsXIxt1ORpjmlfnNXx0BilNukTkVREZl8o623j8uSJy6lbuO0REykVkQKrjylQiUiwiZ6U7DmM6m17RWiKx+ObnkWiUyz58PY0RGdPx1Hleg0dnkNLuRVUdm8r6tuL4o5PZTkTOBW5Q1ZEJ+34LFLZTaMaY7chXfQeTH62jLst9xMZCIXL8eCt7GWMSdcY5ha170aSMiETSHYMxmaIyO4de5ZuIRKPcNXUS3aor3YrrJqY3MGM6iErPa/DoDFLa0iUi04C3gPHAA8DPgFxgFXCdqj7Xyv75wC3Az4GuwEzgclX9RkQKgVnAk6p6a7D9jcAZgKhqhYgU41qwJotId+AhYExwnkuBy3Dzrf0VyBaR8uDQxwLFwGJgsKouE5GbgIOBj4ELg+3+oqq/T4j3GGACMASYBiwA9lLVH7VynvV1K3A+Lvn9P+CfwERgX2A+cJaq/ifYJwsYB5wL9AHmAleq6ifB+seBMO7LwYlABfBb4D/Aw8DOwfHOVNUVCeGMEJEZwJ7A18BlqjorIdaLgF8Bg4FFwLWq+kbCeRwCfAr8IviZ1tZOYzJCyH2fvemNf3DZR28S8n3ADfOqvH0q+bfZBKnGtKaqc+RZDbRXS9e5uMRhF1XtAhwOfJXEfo/gkoMDgH64hOclEYmoajlwMjBORA4TkcOAa4CTVLWiibquAfKBoUA3XCKyTFX/DVwKLFLVwuAxrZl4DgG+BQYAxwHXiciBACKyAzAF+N+g/nuAC5I4x8S6FwTneRYueXsU+CXQA5cs3Zuw/S3A8cBRQE/gMeD1ILmsdxIucesRxPVwsN8JQF/AB25qFMeluKSqB/Ac8IqIdAnO8WLgWuBMoDtwPTBFREYm7H8IsBKXlP28Dee/VcrKyqxs5Ywu+0GChedxxc/O55xTf8nkPQ/avE0uNLuvla3ckcupVovX4NEZtNeUEbW48VG7isi/VXVpazuISC/gdGCoqq4Olt0MXAXsD8xQ1S9F5ErgqWC3K1R1bgsx9ARGAZ+p6vytOI/5qvrXoPyxiHwOCPBBEOvHqvr3YP3bIvIiLvlItu5HgvKrIrIOeD2hZesp4Mmg7AFXAMeo6qJgn0dF5CrgGGBysOwdVX052GcS8Bfgb6q6LFj2HHBRozgeTWgt+wPw/3Atf08BVwK3qGr9jI6viMi7wGnArcGyb1X1rqDccGKidlBUVGRlK3eIMr6PHwoxeZ9D6FFZzlmfz8AHYmz5tpsJcVrZyin7nTetaq+kazKuZeUeYEcReRsYp6rftLDP8ODnHBFJXB6hYSLzDHAHUAn8rYX6JgT7PgH0F5GXghhWt+E8VjZ6XgHU/4YNBJY0Wr+E5JOuxnVXNlpWmXCsXrgkdqqI+AnbRIBBTdWpqpXB69hcnfWKE/bxReTbhDqHA38SkfsSts8CEu9lUowxpqFYjJAH8XAWhVWV7FCykn/sth8nfTmT2r9fhQ1+NCYJnaNxq4F2SbpUNQr8AfiDiHTDje96DNcV1Zz6BGZHVV3bwnb348Ye9cR1lf1PMzFU4LrDrheRfrhEcAJwNpCKy4iWA0c2WjYkBfU2pQSX8P04cbxVigyrLwQtakPYklQtAX6vqs+2sL9dkmVMIzl1teTEYvzlxcc4/fMPNv/vqAqFKTitpY9BY8xmnWTwfKJ2SbpEZAxQCswBqnAJQ4s3DFfVNUGX2p9F5CpVXR4kbIcBb6pquYj8Atf1tRduoP3HIvK+qr7ZRAzHAd/gBqSXA9UJMawC+ohIF1XdtJWn+XfgRhE5BTeO6mDchQOfbmV9zQpaoO4F7hSRC1V1QXBhwYHAF40GxrfV+SLyPPAF8GvcOLiXg3X3ADeJyAJgNm44yj5Aiap+/T2OaUynVuvBWV98xBmff9BgeW48lqaIjDGZoL0G0vfFdf1twHVvDQUuSWK/i4B5wDQRKcMlAicDvojsCvwJd/XdyuCf/i+BySLSv4m6dgCmAptwXWBVwO+Cde8AbwKLRWSjiBza1hNU1YVBbDfjEszfBudc09a6kvR74EXgRRHZhBuEfynf/z18CLgP916dihs3Vgqgqg/jrkSdGKz/FrgRrHfEmJb4Xph4J/yWbsw25XkNH52At/lKG/O9icjfgTJVvTjdsXRi9gtrMp53WwWybDFvP3YbhTU1eMGvbQzI8qekNzhjUq9dMiLvtxsbfN77d3br8JmX3fD6ewi6MGcAZbirCH8O/CStQRlj0i4nXs03fQfSpaa6wXL7xmBMW3T4HOs7tmnSJSJ/xc1J1ZRdg1vxdCSH4rrecnFdb5eq6rsicjDwajP73Kaqt22rAI0x2965haU8WDeYmOcRDnoTfGBDOJs+6Q3NGJNG1r1oOhr7hTUZ791FUY56pob7XpjIJTPfAdxlvlVAgXUvms6nfboXrylt2L04oWuHb/qyey8aY0yKHTYii9pQFl/0G8JXfQYQ8zxKs3Mpvf60dIdmTMfhNXp0Ajamyxhj2sE7p4UZExrL4u69Oe2zGchAj11uPSXdYRnTgXSSTCuBJV3GGNMODhuahX8NTJ1aAj/fmV2OOy7dIRnTsXS+nMuSLmOMMcZkos6XdVnSZYwxxpjM0/lyLhtIb4wx7WlNbQ7VMfuoNcZY0mWMMe3md4f/jQHXfcD62xZx47gP0x2OMR1LJ7x60ZIuY4xpB1eePpVDli7kof2PYHHPfox5dmq6QzKmg+l8WZeN6TLGmHYwYmExJ543jppINgClefkcluaYjOlQOkee1YAlXcYY0w7WFXSld8Umzvx0Bku696KkoEu6QzKmY/E6X9ZlSZcxxrSDXVYvY9a9/02/8lIA/tO7P3BweoMyxqSVjekyxph2MK/PgM0JF0Dv8k1pjMaYDqjzDemypMsYY9rDriUrGzyf039ImiIxxmQKS7qMMaYdHLboq4YLfI+Z//g8PcEY0yF1vqau7T7pEpFpInLDNjiOLyIHtfdxjDGZYfqwXRo832PVEq57sbSZrY0x39H5ci4bSG+2EJFi4AZVndzSchG5DPglMASIAQuBCar6zDYN2JgM9lX/wfAf3fz8X6OFrwcMT2NExnQwnSTRSrTdt3SZthGR04HfAxcAXYEBwK+BDemMy5hMUuOdSGVWDjpwODHPY1GPPvz+yFNZ270nvu+nOzxjOojO19RlLV0JROQHwB+BvXBJxGPA7aoaC9YPAyYABwF5wFzgp6q6TkRuA04D+gCrgftV9Y8tHOtg4HZg1+BYfwbuVtUWP5FFJAsYB5wbHGsucKWqfhKsfxwIA9XAyUAFcIuqPti2V6NZPwSmq+rHwfMq4P0U1W1MpxABzv5sOruuXQHAoNJ1FNRW4eUXMW99jJ172kevMa3qHHlWA9bSFRCRrsCbwLtAP+AY4Hzg6mB9PvAOsAbYGegF/BaoDar4CpeMFQEXAbeLyE+aOdZo4BVcAtc7ONblwC+SCPUW4HjgKKAnLjF8XUS6J2xzEjAV6AFcATwgIkOTqDsZ04GfisitInK4iHRLUb1JKSsrs7KVM75cB+y4btXm5dmxGPsuWUAkHqVPuCpj4rSylVNZNq3ztvembhGZBrwFLAL+AAypb20SkUuAq1V1lIicAtwLDFbVaBL1PgcsUtVxwXMfOFhVZ4jIA0C+qp6fsP1vgLGq+uMW6vSATcAxqjo9YfkXwB9UdXLQ0tVbVY9JWL8WuFBVX2wl5mKSG9N1LC4hPRCXfE4HrlDVL1t5WVJh+/6FNR1DVQ3/GXwVV51wAZ8PGMaR82bzwm77kVtRxtrbB6Q7OmNSrV3apLzfVzX4vPdvzuvwbV/Wxr3FYKC4UffewmA5wDBcEtVkwiUiV+JauAbhfgHzgKeaOdZwYIyInJiwLAQsbSXGXkAhMDVI4upFguPWazhBkOtiLGqlbnBf0CNNLI8E6wBQ1ZeAlwBEZGdc1+hLIjK8te5RY7YLeTmcc/rlzBo6CoDJcihePM5xH72Da6g2xrSqw6dY32VJ1xZLgaEi4iUkDiPYkggVA8NFJFw/xqueiByIayU7HPhYVWNBS1dzvzJLgMdU9ZdtjLEEl0D9WFVntXHfZBQDIxMXiEgh0BfXEvgdqvq1iNwD/AvoDqxvh7iM6XDm92rYovWzuTM5fERdM1sbY77D7r3Yqb2MG0R/nYhMwLVGXQs8mLB+PHCPiNwIlAP74gayd8FNnbAW8EXkGGAs8Gwzx/oz8J6IvAa8husy2wnXLfhecwGqqi8i9wJ3isiFqrogSIoOBL5Q1RVbf/oAPA7/v707j5KzKvM4/v2RxIRFVkFBlhARJaJivKiIjgoMioIOhhnNDIbIeIRxGxwJOoCocJwoAi4HmYgL+0GHYRNlUTLiATXiqxiIiCwaEhAMOyTExCTP/HFv6dtFV3en013VVfl9zqmTqner53lvdeqpe2/Vy5dKXD8teZ1WcrwFIKV0JPAU8KOqqh5OKe0IHA3cXlWVCy6zYofHH2XHpx7jN8/bmcMW/Iw5V1/ECx7+706HZWYd5In0RVVVTwAHAgeQv314HXA+cEZZvxzYjzzceBfwCHki/ISy7QXAzeTeqMOAywd4roXAwcAx5KHApeSCZ9shhPop4ErgypTSkyWWoxmBtqyq6iLgeOCr5B6rheRh0oNrw6qPAR8AfptSWg78HHi85GNmxSEL53PKNRfzX1dfxDtur/jpLrujHvzkbjZqeu8XIzyR3rqOX7DWFU444AK2WL2ao+dfz+Itn8PcV+/PmVe+vdNhmY2G0ZlIf/LKvhPpT5rY9aWXe7rMzEbBsgmTOO7HV7H5yhXs+aclHPqbavCdzOxverCny3O6xpiU0vHkIb7+HFRV1bB/iDSlNBc4vMXqqVVVLR7usc2sr9csvrPP4+2f8kUbzDZ0Hl60buMXrHWFr+85hxl33sqkNX/h6QnPYrU2YusVFw6+o1n3GZ3hxVOahhc/6eFFMzPrx8xfzuauLbZm2YSJLB8/ge/stXenQzLrLh5eNDOzoZg4cTwvXvxlzvrY5Ux6/jg+eMI7B9/JzHqaiy4zs1Gy8cbj2f2gSZ0Ow6w79eBPrLjoMjMzs7Gn92ouz+kyMzMzawcXXWZmZmZt4OFFMzMzG3t6cHjRRZeZmZmNQb1XdbnoMjMzs7Gn92ouz+kyMzMzawf3dJmZmdnY454uMzMzMxsOF11mZmZmbeCiy8zMzMaeIVzwWtIiSXu2Mar14qLLzMzMrA1cdJmZmdnYI/W9DXk37S3pZ5JuLf/uXZbPkTS73P8nSWslbVceXy3pwFHJo8ZFl5mZmY09QxhefMYu0rOAS4FPRsTLgBOBS8vyecD+ZdP9gfnAfpImAK8GbhrJ8Pvjn4ywriLpOuA5rdaPHz/+OatXr364jSG1jXPrXr2cn3PrXiOY37UR8ZYROE4fcez44fxoxIuAVRFxPUBEzJO0qiz/CfA/pQDbFzgWOAy4H7gtIp4emchbc9FlXWWwP+yUUlVVVWpXPO3k3LpXL+fn3LpXj+YnIPpZHhGxQtICYAbwAPAj4HTgPuD/2hGchxfNzMysV9wBTJT0JoDy7wTgzrJ+HvAZYF5ErCQXXLPK8lHnni4zMzPrZtdLWl17fCjwFUmbAsuBwyJiVVk3DziFvxVZ88hDjTe3I1AXXdZrzu50AKPIuXWvXs7PuXWvrs8vIia3WLVPi+1/Rm1afkScCpw68pH1TxH9DX2amZmZ2UjynC4zMzOzNvDwonW9lNLhwHHAVOCYqqrOrK07FzgAaHwt+pKqqj7b9iDXwyD5bQKcA7wSWA0cW1XV9zoS6HrqhbZqllLaHTgP2AZ4BJhZVdVdnY1qZKSUFgF/LjeAj1dVdV3nIlo/KaXTgOnAZOClVVUtLMu7vg0HyG0RPdSG3cBFl/WCXwPvBj7RYv3n6oVKFxoov2OBp6qq2i2l9ELgxpTSblVVLWtrhCOn29uq2Vzgq1VVXViK568B+3U4ppF0WOMNvAdcAXwZuLFpeS+0YavcoLfacMzz8KJ1vaqqFlZVdTuwttOxjIZB8nsX+U2B8um7Ag5qY3jWQkppO2AacHFZdDEwLaW0beeislaqqrqpqqol9WW90ob95Wad4aLLNgT/kVK6LaV0RUppj04HM8J2Bu6tPV4M7NShWEZCL7XVTsD9VVWtASj//pHubp9mF6WUbk0pnZVS2rLTwYwCt6GNKA8v2piXUvoVubjoz3Mb/yG2cALwQFVVa1NKM4FrU0pTBtmnrdYzv64xWJ50QVtZH6+vqmpJSmki8CXgTODwDsdk68Zt2GYuumzMq6pq2nrse3/t/vkppS8CO9K3d6ij1ic/cs/WLsBD5fHO5EtbjDlDyHPMt9U6WgI8P6U0rqqqNSmlccAOZXnXawxXVVW1MqV0FvDdDoc0GtyGNqI8vGg9LaX0/Nr9NwNrqL2594BLgKMAykT6vYFrOxrRMPVaW1VVtZT8JYgZZdEM4Jaqqh5qvVd3SCltmlLaotwX+Ysev+5sVCPPbWgjzT+Oal0vpTQD+AKwFbCKfNmHA6uquj2ldD156Got8CQwu6qq+R0LdhgGyW9T4FzgFeQi5biqqq7sVKzroxfaqllK6cXknxvYCniM/HMDv+tsVOsvpTQFuBQYV263Ax+pquqBjga2HlJKXwHeCTyP/LMlj1RV9ZJeaMP+cgMOocfasBu46DIzMzNrAw8vmpmZmbWBiy4zMzOzNnDRZWZmZtYGLrrMzMzM2sBFl5mZmVkbuOgys7aQNFlSSNpxlJ/naEkX1B5fI+m40XxO65+kuyXNGuK2bXl9tIOkiZLukvTiTsdiY4uLLrMxRtIUSZdIelDSMklLJF0u6Vll/SxJd/ezX6vlh5c3s5P6WXeDpJXleZ6QdIuk6aOT2eiTtClwMvDpxrKIOCgiTu1YUIMobfO6TsexIRiNcy3pjZJW15dFxErgNPLv65n9lYsus7HnauAB4EXAs4F9gOsADfN47wceBd4naVw/60+JiM2AbYCLge9I2n2Yz9VphwO3RcQ9nQ7ENngXA/tJ2q3TgdjY4aLLbAyRtA252JobEU9Edl9EzC2fntf1eHsArweOALYHDmq1bUSsBs4i/zr1S/s51ock3dK0bFdJayRNLo/PKT1zT0m6XdI/DxDbpyVd37TsBkkn1h7vKek6SQ9LWixpjqQJA6T8D8APWx2zNoR1RIlvuaSrJW0l6XOSlpYexg/W9p9Vhsk+LumBss3p9TgGy1vSyyQqmuHgAAAHe0lEQVRdK+khSY9K+mFZvqBs8oPS2/iNFudqE0lfLs/xsKQrJO1cW39DienSEsM9kt7R6iTVcvqopPvKPqdJ2qYc40lJd9R7hSSNl3SSpN+XHOZJ2rO2foKkM2rn8OP9PO/rJd1U9r9H0sckDfnDhKTpkhaUXtkFkg5tzqlp+3Mb57TVuZa0qOR1U1leSdq7v2PUli1S7kHeAbgGGFf2XSbpCICIeBL4BfD2oeZnvc9Fl9kYEhGPAL8BviFppqSp6/Km1I+jyD0/3yP3oL2/1YbKw5cfBP4CLOhnk4uAPSTtVVs2C7ghIhaVxzcBewFbkof5zpU0dTiBS9oO+DFwGfkiw/sAfw/85wC7TSNfzmQw04HXkS8QPhn4OXBPeZ73Al+qFzXki4rvDEwpcRwCHFtb3zJvSduXPH5cnut5wOcBIuLlZf8DI2KziHhfi3i/CLym3HYhX8rlKvXtuTwCOAPYAjgTOE/SJgOcg11KvFPKufgwuYBoXHLqMuCc2vazgZnAW8kF/I3ADyVtXtZ/AjgYeC2wa8l1l8bOkl5Cfg1+AdgWeBvwIeA9A8T4V5L2Ib8GP0HulT0euFjSq4ey/yDn+mjg34Gtgf8Frq7lNdAx/0j+ILOmHHOziDivtslt5NekGeCiy2wseiNwA3AM+QK0f5L0yabia1dJj9dv5F6qv5I0ifyG9q2y6JvAW/XMiconlP3vA94BTI+IZ8wNi4jHgCvJRQklniNqxycivhkRj0TEmoj4NnBryWc4ZgILIuJrEbEqIu4H5pTlrWxFvm7jYE6JiEdLkfs94C8R8fWIWB0R15CvsfeK2vZrgdkRsaIMXZ5KOQ8waN7vAe6OiDkRsbzk0qeHbyCSNiLnfGJE3B8Ry8mvjT2AV9U2/U5E/CQi1gJnk4uvFw5w6BXAZ0o8C8iF9i8iYn5ErAEuBHaTtEXZ/r3A5yPijtLrejL5ep9vK+tnlvV3R8QKclFav87cvwGXRMSV5TzdQS4OB2rPuvcCl0bENaWdvg9cDhw5xP0H8s2I+GVErCIXxCvIBeT6epJcyJkBLrrMxpyIeDgijo+IaeSeiOOAk6i9yQN/iIgt6zfgA02H+kdgM/KbJ+RehqVAc2/KZ8sxtouI10bEVQOEdw7wL6VXbL8S32WQiwNJJ0v6XRn+eRx4OblXYzh2BfZtKiy/Re4pauUxYNAeCvKcuYanmx43lj279nhpRDxde7wI2BGGlPdk4M4hxNTKtsAk4PeNBRGxjNyWO9W2e6C2fnm5W8+h2dJSoDU0n4dGvo1j7NQUw1ryeWjEsGN5XI9hae14uwIzmtrzU+Res6Ho8/zFPfQ9B8O1qHEn8gWJF1Padz1tTp5PaQa46DIb0yLi6Yg4l9xzstcgmzc7ijw/a6GkB8k9WVsD/6r+J9QPxQ+AP5N7AWYB3y69GgAzyAXddGCrUgguoPUXAJYBmzYt26F2/17g+qbicosy6b+VW4BhDWcOYrumobrJ5PMJg+e9iIF7nGKAdQAPASvJRQsAkjYDtgOWDC38EbGkKYaNyOehEcP95XFj/abkGBvuBb7V1J6bR8RLhvP8xZTa8w/2eoLW57oet8hDyY327XNcSePpm1e9cG22J/k1aQa46DIbU5QndM9RnkA+oUxenk7+z/vGdTjOVGBf4FBysda4vYrcU/TW4cRXejfOBz4CvJPa0CL5U/1qcpGwkaQjyT0+rVTANEmvLHl+iL5vqucDSdKRkiaVHqUpkt4ywDGvAA5Y98wGtRHwOUkbS5pCHjprzN0ZLO8LgRcpT8TfpLTr/rX1DzJAUVY756dI2qEUf6cDdwA3j1B+Q3EucJyk3UtP5wnAeOD7Zf0FwGxJL5C0MXkItl5wnwW8W9Ihtdf2VElvWIfnny7pzZLGSTqI/BpszDu7hVwcH1xeK4cCf9d0jFbn+khJ05S/HDEb2KSWVwXsr/ylkYnAZ4H6lzkeJE+k71MQSno2+e/tu0PMzzYALrrMxpZV5E/Rl5GHJR4CTgQ+HBGXrMNxjgJ+FRFXRcSDtdutwCVl/XCdA7yBPMRZf9M/jzwh/W5yr8dUBigUI+IGcvFwLXlY67nAT2rrHwTeRP5G4iLy0OHl5N6NVi4AXl4Ko5F0LzmnP5BzvJZcVMAgeZfJ1m8kfwngPuBPQP2bfScAJ0t6TNLXWjz/R8lv/r8gD31tD7y9zL1qly+QfwbhB+Qc9iNPSm/MoZtD/mmT+eTztJh83gCIiIXkHtJjyO29lFxIDWn4OSJ+Sp5DeBr5tXAqcHhEzC/r7yFPhj+b/LfzFuDSpsO0OtdnA18px30X8LaIeKKsu4hcOP2KPJy5mNzOjbjuJBeUN5dh08YXA2YAP4qIu4aSn20YlIevzcx6g6SjgX0jYkjfihvC8WaRJ7H795Z6kKRF5Pa9cLBt1+GYE4GF5ML4tyN1XOt+4zsdgJnZSIqIucDcTsdhG67y7c6B5vHZBsrDi2ZmZmZt4OFFMzMzszZwT5eZmZlZG7joMjMzM2sDF11mZmZmbeCiy8zMzKwNXHSZmZmZtYGLLjMzM7M2+H+jRhxEKa1tiQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 576x396 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "shap.summary_plot(shap_values, Xdf)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmUAAAFeCAYAAADE2mjUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xu4ndO99//3EmmVBKHUISIhD3vL9rT9+Tg8umlRtjSy+SktopoQp41QJboTqcPjp21CndsKkYikm7JTBCG0JdE6fVW11aaOidAEUUKCRpL1+2OMuXNbnWvNuVbWWrllfV7XlWvOeY9xjzHue+a61vf6jnGP2dDY2IiZmZmZrVnrrOkBmJmZmZmDMjMzM7NScFBmZmZmVgIOyszMzMxKwEGZmZmZWQk4KDMzMzMrAQdlZmZmZiXgoMzMzMysBByUmZmZmZXAumt6ANa1TJ8+vXHw4MFrehhmZmadpaHeis6UmZmZmZWAgzIzMzOzEnBQZmZmZlYCDsrMzMzMSsBBmZmZmVkJOCgzMzMzKwEHZWZmZmYl4KDMzMzMrAQclJmZmZmVgIMyMzMzsxJwUGZmZmZWAg7KzMzMzErAQZmZmZlZCTgoMzMzMysBB2VmZmZmJeCgzMzMzKwEGhobG9f0GKwLabhkuf/DmZlZKTWetW5HNNtQb0VnyszMzMxKwEGZmZmZWQk4KDMzMzMrAQdlZmZmZiXgoMzMzMysBFYrKJPUW1KjpL7tNJ52JekZSV+vo94QSU93QP/XS5rU3u2amZnZ2qdDnv0si4gYUGe9qcDUyuccSC2PiOEdNDQzMzOzj/D0pbWKpO5regxmZmZro1ZlyiRtAYwHvgi8BowtlO0HXAzsACwHfgGMiIjXJQ0EJgNbR8SyXL8nsAAYCDwMXAQMA3oCbwKXRsRVLYzlIOCG3OaH+VgPYCHwlYiYJWkucG5ETJHUK49933zd84GTI2K2pKG5Xn9JI4Ehub0jcncbRcQKSYcAY4Dt89gvylm2ypiOBUYDmwF3kDaMW17nvT0eOB3YBngROCciZuaym4DPAAdGxEpJXwLuBPaMiD9KehD4HdAf+BIwDzgrImbU0W8j8C1gaL6uAI6PiOdzeaXtvvneXQx8X9JewPeAnYC3gB8BP4wIbw5rZmbWBq3NlE0FVgB9gL1Jf8gr/g6cSgpIdga2Aq7IZfcBS4GDC/WPBOZHxGxgf+CbwO4R0RPYHfh1jbHMIAU8gwrHDicFZbOr1D8bWB/YFtgYOBR4pWmliBibr/PGiOiR/62QtD8wATgD2CSP92pJewPkIOUa4KRcfj9Qcz1bPvcE4BxSMNiLFNhNk9Q/VzkJ6A2cK+kzwE+B0yPij4VmjiPd741JgdPPW7HW7wTgMGBz4BngTkndCuXHAlcCGwFXShoA3AOMI33fg0jf/Tfq7M/MzMyaqDtTJmlrUqakf0QsBhZLugCYCRARDxeqL5Q0lpTJImd3ricFDrfmOscB1+f3y4D1gAGS3oiI10iZuGblQOkmUnbt9nx4GDCxmWzNMmBTYEfgqYh4tt5rz04HrshBJMDjkqYAxwCz8uttEXF/Lp8s6cQ62x4BXBgRlYcN7pH0K+AIUjZuqaTDgEdJwdN9ETGxSRu3F/qeKulk4ChSgFbLpYXM2EhS5mt34De5/LaI+GV+/15u+9aIuCMfmyPpatI9mFznNZuZmVlBa6Yve+fXeYVjL1XeSNqFFAB8lpSRagB6FOpOAMZI6gNsCHyOnOWKiAcljQLOBX4m6RFgdEREjTFNBH4vaXPStOeepECkmnFAd+BGYEtJdwEjcwBYj37APpLOLBzrxqqsXG/S1F/RS9SnH3CNpCsLx9alkMmLiD/lQG0wcEiVNuZW+dz7H6tV9T/nRsR7kt5ocm7TtvsB+0o6tHBsHdKUsJmZmbVBa4KyV/PrtsAL+X2/QvnNwG3A4RHxTl7zNb1SGBELJN1Nymb1ImV2FhXKxwPjJa0PnA9MI02TNisi5kh6Ejg6t/lARPzDlGSuu5Q0LTg6r42bQgrUjqlSfWWVY/OASRExrpnhvEpad1XUD3iupWsotH1eRNzaXAVJQ4A9SPd4gqQvR8SKQpWmffclTTHW43/Ozfd/Mz46tdv0fswDboiIU+ps38zMzGqoOyiLiFfyou+xkoYBnyIteq/YEFgMvJuzYd+p0sx44FpgA9LUHACSdgU+CTxBWpv2LnUukCdly0aQMmVnN1dJ0mDgeeBZYAnwQQt9LAT2kLRORFQCksuBiZIeJU3rdSOtnWvIGb3JwH15O42H8vXtRn1B2WXA+ZKeA54mTeXuAizKgec/kxbSf5W01u5x4Dzgu4U2DskPWzwIfA3YleoBZzXfyt/tq8D3SQ8aPNZC/R8BD0m6F7gXaCQ94LFZRDxUZ59mZmZW0NqF/keRgqf5pGm74vqhE4DhpIBqGqvWjhXNJGVdFpOezqzoSVpIvoj05OUBFIK2Gm4GtiNNld7RQr3tSZm7d0jTce9TPXCEtNZtA+BNSW9L6pafhDyBlF1bRHr68rLcLxExCzgtn/s34EDglnouICKuIz3JOpG0nutlUsDbPWeubgUui4gHIuJ90gMNp+eHDyomAGeS7u13gUMj4sV6+s9jnga8QZp+PrhJFq7peP8IHER66GEB8DowiZRhMzMzszZoaGzs3B0MckZmZkTUswDd6pDv6QMRcVEbzm0E9mryoEaHabhkubfMMDOzUmo8q0P21G+ot2Kn7uift4/YlZTpMTMzM7Os04IySU+QNjc9LSLeqPOcUcCoZooHFranKLW8SP/aZopPLG5A2wF9zwD2qlYWET2qHTczM7PO1+nTl9a1efrSzMzKqktNX5rdueMMBg8evKaHYWZmVjr+QXIzMzOzEnBQZmZmZlYCDsrMzMzMSsBBmZmZmVkJOCgzMzMzKwEHZWZmZmYl4KDMzMzMrAS8eax1qvbePLaDNvozMzNrL3VvHutMmZmZmVkJOCgzMzMzKwEHZWZmZmYl4KDMzMzMrAQ6fZW0pN7AfKBfRMzt7P5rkfQMcGFE3FKj3hBgZER8tp37vx5YNyKG1lH3KuBIYD1gu4h4vT3HYmZmZp3Hj641ERED6qw3FZha+SxpErA8IoZ30NA+QtKewLFA34h4ozP6NDMzs47j6cuPr+2ABZ0dkEnq3pn9mZmZdRUdnimTtAUwHvgi8BowtlC2H3AxsAOwHPgFMCIiXpc0EJgMbB0Ry3L9nsACYCDwMHARMAzoCbwJXBoRV7UwloOAG3KbH+ZjPYCFwFciYpakucC5ETFFUq889n1J92o+cHJEzJY0NNfrL2kkMCS3d0TubqOIWCHpEGAMsH0e+0U5y1YZ07HAaGAz4A7SfibLa9zTkcCFwCckLQEeB/Zr7f3IbT0I/A7oD3wJmAecFREzcvn5wN7Ab4Fv5NeBkvoAPwS+kJuaDnw7It5tqT8zMzOrrjMyZVOBFUAf0h/3oYWyvwOnkgKSnYGtgCty2X3AUuDgQv0jgfkRMRvYH/gmsHtE9AR2B35dYywzSAHPoMKxw0lB2ewq9c8G1ge2BTYGDgVeaVopIsbm67wxInrkfysk7Q9MAM4ANsnjvVrS3gCS9gKuAU7K5fcDX69xDZX+TgJezH3tS9vuR8VxpPu+MSlI/rmkvoXyvUkB5TbAVyWtB/wS+BMpY7cT0JtV352ZmZm1UodmyiRtTcoy9Y+IxcBiSRcAMwEi4uFC9YWSxpIyWUTEyrzo/Tjg1lznOOD6/H4ZaYH7AElvRMRrpExcs3KgdBMpm3R7PjwMmBgR1XaaXwZsCuwIPBURz9Z/9QCcDlyRg0iAxyVNAY4BZuXX2yLi/lw+WdKJreyjONZW3Y+C2wtjmCrpZOAoUoAG8HJEXFrpR9JhQENEfDcfe1/SGOA3ko6PiBVtvAYzM7Muq6OnL3vn13mFYy9V3kjahfSH/7OkjFQD0KNQdwIwJk+VbQh8jpzliogHJY0CzgV+JukRYHRERI0xTQR+L2lz0jTfnqQApJpxQHfgRmBLSXeRnrisN9jpB+wj6czCsW6sysr1BpqO9yXaYDXuB8DcKp97t1DeD+gj6e0mxxuBLYBX6xy2mZmZZR0dlFX+OG8LvJDf9yuU3wzcBhweEe/kNV/TK4URsUDS3aRsVi9SRmdRoXw8MF7S+sD5wDTSNGmzImKOpCeBo3ObD0TEP0xJ5rpLSeu9Rue1cVNIgdoxVaqvrHJsHjApIsY1M5xXgb5NjvUDnmvpGprTlvuRNR1DX+Cewuem1zYPeLbeJ1XNzMystg4NyiLilbyQfKykYcCnSIveKzYEFgPv5mzYd6o0Mx64FtgAqCyiR9KuwCeBJ0hr096lxgL5gonACFKm7OzmKkkaDDwPPAssAT5ooY+FwB6S1omIShBzOTBR0qPAb0hZsp1JU39BepDhvrydxkP5+najDUHZat6PQ/JDFw8CXwN2pXrgWXEXcFHOzF1FujdbAbtFxM9bO3YzMzPrnIX+R5GChfmkabvJhbITgOGkAGIaq9aOFc0kZWoWk57OrOgJXAksIj1peACFoK2Gm0kL1HuQnnhszvakzN07pCm896keOEJa67YB8KaktyV1i4iZpGscl8e5ALgs90tEzAJOy+f+DTgQaHHT2haszv2YAJxJusffBQ6NiBebqxwR75Ge9twJmMOq7+ZzbRy7mZlZl9fQ2FhtfXu55GzbzIi4uFZda518bx+IiIs6o7+GS5a363+4xrO8/7GZmZVaQ70VS/8XLW8fsStp6wozMzOztVKpgzJJT5A2NT2t3p3r8zqnUc0UDyxsT1Fq+bc1r22m+MTiBrQ12mnxfrRlbGZmZtb+PhbTl7b28PSlmZl1MWvP9KWtXe7ccQaDBw9e08MwMzMrHf8guZmZmVkJOCgzMzMzKwEHZWZmZmYl4KDMzMzMrAQclJmZmZmVgIMyMzMzsxJwUGZmZmZWAt481jpVWzeP9SaxZmb2MVX35rHOlJmZmZmVgIMyMzMzsxJwUGZmZmZWAg7KzMzMzErAQZmZmZlZCTgoMzMzMysBB2U1SOq+psdQFpK6SfL/GTMzsw7gfcqakDQXuAHYB9gNOA74ABgDbA8sAC6KiKmS1gXmAydFxB2FNm4EVkTEsfnz8cDpwDbAi8A5ETEzl50P7AU8BgzPTfw4Is7L5V8CHoiIdQvtnw/8a0R8OX/eFBgLHACsB/wKOC0iXqtxrUOBc4HrgDOAbsBNwHci4kNJfYGX8ri+na9/W2ARMBIYCmwOPAOMiIgnW7y5eJ8yMzPrcrxP2Wo6HjgT6AEsBSaQgpZNgG8CV0vaOyKWk4KYYZUTJfUAvgpMzJ9PAM4BhgC9gNHANEn9C/3tDbwMbAUMBkZJ+kI9A5XUANwONAL/Qgqa3gV+Wue1bgv0AbYD/k/u/6wmdY4C9gV6Am8AFwIHAwcCm5KC2Psk9aqzTzMzM2vCQVl110XEUxHRCJwIXBERsyNiZUQ8DkwBjsl1JwJfkbR5/vw14K8RMTt/HgFcGBFP5/PvIWWyjij092xE/CQilkfEY8DvANU51l3yv1MiYnFEvEfKYu0rqXcd568Ezo6I9yPiBVLGbViTOhdExMKIWJbrn5bPeTEiVkTEBFIGcVCdYzYzM7MmPCdU3dzC+37APpLOLBzrBswGiIg/S/otcDTwQ1JAM7HJ+ddIurJwbF3glcLnBU36X0rKStWjH/BJ4DXpI3HcB6QM2CvVTip4PQdyFXOBpsHc3ML7T5MyiNMlFaciu1c5z8zMzOrkoKy6lYX384BJETGuhfoTgVMk3QnswUezYPOA8yLi1jaOZQnQTdInI+Lv+dhWTdpfCmwSESv/4ezaNpe0fiEw68s/BnLFdhfl/r4cEU+0oT8zMzOrwkFZbZcDEyU9CvyGlCXbGWiIiMh1bgYuA64E7o+IVwvnXwacL+k54GnSQvxdgEURMaeO/v9CCsyGS/oxsCdwGPDbXB6k6c4rJJ0fEW9K2gzYLyJurqP9dYDvSzoH2JK0nuzG5ipHRKOkK4BLJA2PiOfyOrovAH+IiL/W0aeZmZk14TVlNeSnJE8AxpGyRAtIgVaPQp3FwM+BgaRF78XzryOt05oIvEVa0D+GNN1XT//vkqZEvw0sJj3FeWOhfCVwCOm7fFLSu6QnOb9U5yXOA14lPWX5GHBvHm9LzgPuAO6Q9A7wHHAS/v9kZmbWZt4SowurbIkREf1r1W0v3hLDzMy6GG+JYWZmZvZx4vTDWkxSH+BPzRRPAR7txOGYmZlZCzx9aZ3K05dmZtbF1D196b901qnu3HEGgwcPXtPDMDMzKx2vKTMzMzMrAQdlZmZmZiXgoMzMzMysBByUmZmZmZWAgzIzMzOzEnBQZmZmZlYCDsrMzMzMSsCbx1qnas3msd4w1szM1gL+7UszMzOzjxMHZWZmZmYl4KDMzMzMrAQclJmZmZmVgIMyMzMzsxJwULaWk3S+pAfW9DjMzMysZQ7KzMzMzErAG0GVjKRNgcuA/Ul7m9wHfCsi/iZpBPAt4NPAO8CNETGqhba+DowC1pG0JB/+LDALODUifl6oOxn4MCKOkzQJ6A6sBA4G3gD+b0RMKtTfC/gesBPwFvAj4IcR4Y3vzMzM2sCZsvKZCvQiBTv/TArAbpK0A/B94KCI6AkMAO5sqaGIuAW4GHgwInrkfy8AE4DhlXqSNgIOA64rnP41UkC4CXAS8GNJe+b6A4B7gHHAZsAg4FTgG6t36WZmZl2XM2UlImkr4N+AHSLirXzsTGAOKbhqAAZImhcRbwOPtrGr64HvSNo6Il4FjgJeiIhie49GxJT8/n5J/w0MBX4DnAzcGhF35PI5kq4GjgEmt3FMZmZmXZozZeWyTX59qXDshfz6ITAEOB74q6SHJR3Qlk4i4mXgfmBYPjScj2bJAOZW+dw7v+8HHCnp7co/4Dxgy7aMx8zMzJwpK5v5+bUv8Hx+v12lLCIeB6ZJ+gRpSvEOSZtGxHsttLmymePXApdLups0VXpTk/K+VT6/kt/PA26IiFNa6NfMzMxawUFZiUTEXyXNBC6V9E3SdOWlwAxgQ0mVRfrvA4uBRpoPuioWAn0kfSIilhWO301anD8B+O/KdGnBHpKOBH4GfBH4KunhA/J5D0m6F7g3j2MHYLOIeKgNl25mZtblefqyfI4G3iWtI5sDvE1aq/UJ0hThgnxsBPDViPigRnu3kjJwC/NUYz+AiFhBCsg+zz9OXUIKxr5CerJyAnBKRDycz/0jcBBwRh7P68Ak0qJ/MzMza4OGxkbvYNBVSRoK/GdE7Njk+CRgeUQMr3be6mi4ZHnd/+Eaz3Ii18zMPvYa6q3oTFkXJakncDpw5Zoei5mZmXlN2ceepCGkRfvVnBgRU6uccwZpi42ZwPgOHJ6ZmZnVydOX1qk8fWlmZl1M3dOX/qtnnerOHWcwePDgNT0MMzOz0vGaMjMzM7MScFBmZmZmVgIOyszMzMxKwEGZmZmZWQk4KDMzMzMrAQdlZmZmZiXgoMzMzMysBLx5rHUqbx5rZmZdjH/70szMzOzjxEGZmZmZWQk4KDMzMzMrAQdlZmZmZiXgoMzMzMysBNr0eJuk3sB8oF9EzG3XEbUDSc8AF0bELTXqDQFGRsRn27n/64F1I2JoHXWvAo4E1gO2i4jX23MsZmZm9vGwVu45EBED6qw3FZha+SxpErA8IoZ30NA+QtKewLFA34h4ozP6NDMzs3Ly9OWatR2woLmATFKDpFIFzpK6r+kxmJmZrY3q+oMvaQtgPPBF4DVgbKFsP+BiYAdgOfALYEREvC5pIDAZ2DoiluX6PYEFwEDgYeAiYBjQE3gTuDQirmphLAcBN+Q2P8zHegALga9ExCxJc4FzI2KKpF557Pvm650PnBwRsyUNzfX6SxoJDMntHZG72ygiVkg6BBgDbJ/HflHOslXGdCwwGtgMuIO0UdzyGvd0JHAh8AlJS4DHI2JfSY3AGcA3gAHAPsCjko4HTge2AV4EzomImYX2WhxjC+OYm+/nAcDngDn5/jyRyycB3YFlwMHALcDJkv4FuBTYBXiPlHH8buU7MTMzs9apN1M2FVgB9AH2BoYWyv4OnEoKSHYGtgKuyGX3AUtJf8wrjgTmR8RsYH/gm8DuEdET2B34dY2xzCAFPIMKxw4nBWWzq9Q/G1gf2BbYGDgUeKVppYgYm6/zxojokf+tkLQ/MIEUKG2Sx3u1pL0BJO0FXAOclMvvB75e4xoq/Z0EvJj72rdQfFxuowfwlKQTgHNIQWMvUgA4TVL/PIYWx1iHk0gB3ybAbcA9kjYslB8O3Ev6jr8taXPgIWAa6fv+P6Tv8j/r7M/MzMyaqJkpk7Q1KcvUPyIWA4slXQDMBIiIhwvVF0oaS8q8EBEr86L344Bbc53jgOvz+2WkBe4DJL0REa+RMnHNyoHSTaTs2u358DBgYkRU+wmfZcCmwI7AUxHxbK1rbuJ04IocRAI8LmkKcAwwK7/eFhH35/LJkk5sZR9NXRIRL+T3KySNID248HQ+do+kXwFHkDKNtcZYy4SIeBJA0g+A/wAOAn6ayx8uPDTxnqT/AJ6OiGvzsVclfQ/4ASn7Z2ZmZq1Uz/Rl7/w6r3DspcobSbuQpi8/S8pINZAyPBUTgDGS+gAbkqbIBgFExIOSRgHnAj+T9AgwOiKixpgmAr/PGZuewJ7AUc3UHUeafrsR2FLSXaQnLlsM/gr6AftIOrNwrBursnK9gabjfYnVM7fKGK6RdGXh2LqsyvjVGmPd/UVEo6SXWfW9NzeeL0h6u3CsIfdpZmZmbVBPUPZqft0WqGRv+hXKbyZNeR0eEe/kNV/TK4URsUDS3aRsVi/g9ohYVCgfD4yXtD5wPmlKrE9LA4qIOZKeBI7ObT4QEf8wJZnrLiVN943Oa+OmkAK1Y6pUX1nl2DxgUkSMa2Y4rwJ9mxzrBzzX0jXU0HQc84DzIuLWapWpPcZa+lbeSGog3f/i/aw2ngciYhBmZmbWLmoGZRHxiqQHgbGShgGfIi0or9gQWAy8m7Nh36nSzHjgWmAD0pQbAJJ2BT4JPEFam/YuNRbIF0wERpAyZWc3V0nSYOB54FlgCfBBC30sBPaQtE5EVAKRy4GJkh4FfkPKBu0MNOSM3mTgvrwg/qF8fbuxekFZU5cB50t6DniaNOW7C7AoIubUMcZajpX0c+APwLdIGc+7W6g/mbS27FjSFOcyUmC3Q0Tc24brMzMz6/LqXeh/FCl4mk+aEptcKDsBGE4KqKaxau1Y0UxStmUx6enMip7AlcAi0pOXB1AI2mq4mbSlRA/SE4/N2Z6UuXuHNA33PtUDR0hr3TYA3pT0tqRu+QnHE0jZtUWkJxsvy/0SEbOA0/K5fwMOJD2h2G4i4jrSE68TgbeAl0mBcfdc3uIY6zCe9D28RXrAYFBeP9jceBaSngo9hHRP3wJ+Tvo+zMzMrA0aGhurrY1vfznbNjMiLu6UDq0uxe1DOqO/hkuW1/0frvGsUm3RZmZm1hYN9VbslL96eWuGXUlbK5iZmZlZEx0elEl6AugPnFbvTwnlJzJHNVM8sLD1Q6nl39a8tpniE+vZ3LUdxvAT0gMR1ezU0f2bmZlZfTpt+tIMYPr06Y2DBw9e08MwMzPrLHVPX/q3L83MzMxKwEGZmZmZWQk4KDMzMzMrAQdlZmZmZiXgoMzMzMysBByUmZmZmZWAgzIzMzOzEvA+Zdapav3Mkn9ayczM1jLep8zMzMzs48RBmZmZmVkJOCgzMzMzKwEHZWZmZmYl4KDMzMzMrAQ6PCiT1FtSo6S+Hd1XW0h6RtLX66g3RNLTHdD/9ZIm1VFvkqTr27t/MzMzK4cuv/9ARAyos95UYGrlcw6klkfE8A4ampmZmXUhnr60VpHUfU2PwczMbG3U7pkySVsA44EvAq8BYwtl+wEXAzsAy4FfACMi4nVJA4HJwNYRsSzX7wksAAYCDwMXAcOAnsCbwKURcVULYzkIuCG3+WE+1gNYCHwlImZJmgucGxFTJPXKY9+XdG/mAydHxGxJQ3O9/pJGAkNye0fk7jaKiBWSDgHGANvnsV+Us2yVMR0LjAY2A+4gbSq3vM7b+0lJ1wGHA0uBCyPi2txuX+BaYHegEXgROCoi/tLC/ekLvAQcD4wENgceAo6PiNdznbn5Hu4D7AYcB9xc6zrNzMysdToiUzYVWAH0AfYGhhbK/g6cSgpIdga2Aq7IZfeRAo2DC/WPBOZHxGxgf+CbwO4R0ZMUfPy6xlhmkAKeQYVjh5OCstlV6p8NrA9sC2wMHAq80rRSRIzN13ljRPTI/1ZI2h+YAJwBbJLHe7WkvQEk7QVcA5yUy+8Haq5nKzgMmJ7PPS23vW0uuxh4GfgM8GlS8Pp2ne0eQ/qu+gArgSlNyo8HzgR6AHfUuk4zMzNrvXbNlEnampRl6h8Ri4HFki4AZgJExMOF6gsljSVlYYiIlXkh+3HArbnOcUBlcfsyYD1ggKQ3IuI1UiauWTlQuokUoNyeDw8DJkZEtZ/7WQZsCuwIPBURz9Z/9QCcDlyRg0iAxyVNIQU9s/LrbRFxfy6fLOnEVrT/y4i4M7+fJult4HPAvDz2LYDtIuLPwO9b0e4FEbEQQNLZwHOStoqIv+by6yLiqfz+fUm1rtPMzMxaqb2nL3vn13mFYy9V3kjahZTR+SwpI9VAyr5UTADGSOoDbEgKOAYBRMSDkkYB5wI/k/QIMDoiosaYJgK/l7Q5adpzT+CoZuqOA7oDNwJbSroLGJkDwHr0A/aRdGbhWDdWZeV6A03H+xL1W9Dk81LSNUHK8o0BpkvaALgN+M+IWFJHu3OrvO8N/LVKOdS+TjMzM2ul9g7KXs2v2wIv5Pf9CuU3k4KFwyPinbzma3qlMCIWSLqblM3qBdweEYsK5eOB8ZLWB84HppGm3JoVEXMkPQkcndt8ICL+YUoy111KWu81Oq+Nm0IK1I6pUn1llWPzgEkRMa6Z4bwK9G1yrB/wXEvXUI+IeAMYAYyQtB1pvdpI4Lt1nN6XVd9XZXzFe9T0Wmtdp5mZmbVSuwZlEfGKpAeBsZKGAZ8iZW8qNgQWA+/mbNh3qjQznrRgfQOgsogeSbsCnwQgsbZvAAAgAElEQVSeIK1Ne5f6F8hPJAUsPUkZpaokDQaeB54FlgAftNDHQmAPSetERCVouRyYKOlR4Dek7NHOQEPO6E0G7svbaTyUr2832iEoy3utPU7Kai0mTWfWe3/GSPoj8D7wA+AXhanLampdp5mZmbVSRyz0P4oUPM0nTWdNLpSdAAwnBVTTWLV2rGgmKTOzmPR0ZkVP4EpgEenJywMoBG013AxsR16o3kK97UmZu3dIwc37VA8cIa112wB4U9LbkrpFxEzSNY7L41wAXJb7JSJmkRboXw/8DTgQuKXOa6jl86RAbwnwDPBb4JI6z51C+q7mA58gZRWbVes6zczMrPUaGhurrXdfs3K2bWZEXLymx7I2K2yJsU1zU7rtreGS5S3+h2s8q8vvZ2xmZmuXhnorlu4vYN5WYVfS1hVmZmZmXUKpgjJJTwD9gdPywvV6zhkFjGqmeGBh24ZSkzSEtJaumhPbujGrpGdID140NY+P7t9mZmZma1Appy9t7TV9+vTGwYMHr+lhmJmZdZa6py/925dmZmZmJeCgzMzMzKwEHJSZmZmZlYCDMjMzM7MScFBmZmZmVgIOyszMzMxKwEGZmZmZWQk4KDMzMzMrAW8ea52qpd++9O9empnZWsibx5qZmZl9nDgoMzMzMysBB2VmZmZmJeCgzMzMzKwEOjUok9RbUqOkvp3Zb70kPSPp63XUGyLp6Q7o/3pJk9q7XTMzMys/P+5WEBED6qw3FZha+ZwDqeURMbyDhmZmZmZrOU9frgUkdV8b+zIzM+tKOjRTJmkLYDzwReA1YGyhbD/gYmAHYDnwC2BERLwuaSAwGdg6Ipbl+j2BBcBA4GHgImAY0BN4E7g0Iq5qYSwHATfkNj/Mx3oAC4GvRMQsSXOBcyNiiqReeez7ku7TfODkiJgtaWiu11/SSGBIbu+I3N1GEbFC0iHAGGD7PPaLcpatMqZjgdHAZsAdpL1MltdxXycB3YFlwMHALZJGNTfeGm01At8ChuZxBnB8RDyfyx8Efgf0zW1fDHxf0l7A94CdgLeAHwE/jAhvfGdmZtYGHZ0pmwqsAPoAe5P+8Ff8HTiVFJDsDGwFXJHL7gOWkgKOiiOB+TnI2B/4JrB7RPQEdgd+XWMsM0gBz6DCscNJQVm1wOVsYH1gW2Bj4FDglaaVImJsvs4bI6JH/rdC0v7ABOAMYJM83qsl7Q2Qg5prgJNy+f1AzfVsTcZ+L+n+fbve8TbjBOAwYHPgGeBOSd0K5ccCVwIbAVdKGgDcA4zL/Q8ifZffaMX4zczMrKDDMmWStiZlVvpHxGJgsaQLgJkAEfFwofpCSWNJmSwiYqWk64HjgFtzneOA6/P7ZcB6wABJb0TEa6RMXLNyoHQTKbt2ez48DJjYTHZnGbApsCPwVEQ8W//VA3A6cEUhU/W4pCnAMcCs/HpbRNyfyydLOrEV7T8cEbfk9+9JWp3xXlrIjI0kZb52B36Ty2+LiF8W+joZuDUi7sjH5ki6Ol/T5Fb0a2ZmZllHTl/2zq/zCsdeqryRtAtpKuyzpAxPA9CjUHcCMEZSH2BD4HPkLFdEPJin684FfibpEWB0RESNMU0Efi9pc9K0557AUc3UHUeaIrwR2FLSXcDIHADWox+wj6QzC8e6sSor15s0VVj0EvWb247j/Z+2IuI9SW+w6vur1lc/YF9JhxaOrUOaMjUzM7M26Mig7NX8ui3wQn7fr1B+M3AbcHhEvJPXfE2vFEbEAkl3k7JZvYDbI2JRoXw8MF7S+sD5wDTSNGmzImKOpCeBo3ObD0RE1Sm+iFhKWu81Oq+Nm0IKfI6pUn1llWPzgEkRMa6Z4bxKWqdV1A94rqVraK7PVo63qf8ZR76fm/HRqc+m1zcPuCEiTqlzrGZmZlZDhwVlEfFKXiQ+VtIw4FOkRe8VGwKLgXdzNuw7VZoZD1wLbABUFtEjaVfgk8ATpLVp71LHAvlsIjCClCk7u7lKkgYDzwPPAkuAD1roYyGwh6R1IqISwFwOTJT0KGkasBtp7VxDzuhNBu7Li/Yfyte3G/UHZasz3qa+lb+rV4HvAy8Cj7VQ/0fAQ5LuJa1rayQ9sLFZRDzUlvGbmZl1dR290P8oUvA0nzRtV1xvdAIwnBRQTWPV2rGimaQszWLS05kVPUkLzxeRnrw8gELQVsPNwHakqdI7Wqi3PSlz9w5p+u59qgeOkNa6bQC8KeltSd0iYibpGsflcS4ALsv9EhGzgNPyuX8DDgRuqdJ2vVoz3mrjnwa8QZpOPjgiVjRXOSL+CBxEeohhAfA6MImUYTMzM7M2aGhsLPcOBjmDMzMiLl7TY1kb5S0x9mry4EWHabhkebP/4RrP8l7GZma21mmot2Kp/wrm7SN2JW3/YGZmZrbWKm1QJukJoD9wWkS8Uec5o4BRzRQPrLWRallIGkJaS1fNicUNaOtoawawV7WyiOhR7biZmZl1vtJPX9raxdOXZmbWxawd05e29rlzxxkMHjx4TQ/DzMysdPyD5GZmZmYl4KDMzMzMrAQclJmZmZmVgIMyMzMzsxJwUGZmZmZWAg7KzMzMzErAQZmZmZlZCXjzWOtU3jzWzMy6mLo3j3WmzMzMzKwEHJSZmZmZlYCDMjMzM7MScFBmZmZmVgLtGpRJ6i2pUVLf9my3vUh6RtLX66g3RNLTHdD/9ZImtXe7ZmZm9vHXpR53i4gBddabCkytfM6B1PKIGN5BQzMzM7MuztOXawFJ3TupnwZJXSqQNzMz6yyr9QdW0hbAeOCLwGvA2ELZfsDFwA7AcuAXwIiIeF3SQGAysHVELMv1ewILgIHAw8BFwDCgJ/AmcGlEXNXCWA4CbshtfpiP9QAWAl+JiFmS5gLnRsQUSb3y2PfN92E+cHJEzJY0NNfrL2kkMCS3d0TubqOIWCHpEGAMsH0e+0U5y1YZ07HAaGAz4A7SXiXLa9zTfwF+m6/jjXysAXgROC8iJufruAHYB9gNOE7SX4CrgJ2BFcAcYFBEvNVCX18CHgCOAy4k3es7gVMjYkmu0wicAXwDGJD7fFTS8cDpwDZ5bOdExMyWrs3MzMyat7qZsqmkAKAPsDcwtFD2d+BUUkCyM7AVcEUuuw9YChxcqH8kMD8iZgP7A98Edo+InsDuwK9rjGUGKeAZVDh2OCkom12l/tnA+sC2wMbAocArTStFxNh8nTdGRI/8b4Wk/YEJpIBlkzzeqyXtDSBpL+Aa4KRcfj9Qcz1bRPwR+B05EMy+BGwK3FY4djxwJtCDFPBdA8zMfX0mly2r1R/QDRgM/G/gn0lB9KVN6hyXx94DeErSCcA5eYy9SIHnNEn96+jPzMzMqmhzpkzS1qQsU/+IWAwslnQBKTAgIh4uVF8oaSwpu0NErJR0PemP/a25znHA9fn9MmA9YICkNyLiNVImrlk5ULqJlF27PR8eBkyMiGq7yC8jBTo7Ak9FxLP1Xz2QskRX5CAS4HFJU4BjgFn59baIuD+XT5Z0Yp1tTyQFc5cXruOWiHivUOe6iHgqv39f0jJScLxNRMwFHm3FtZxT+A6/C9wl6eSIWJnLL4mIF/L7FZJGABdGROVhiHsk/Qo4gpThNDMzs1ZanenL3vl1XuHYS5U3knYhTV9+lpSRaiBlWiomAGMk9QE2BD5HznJFxIOSRgHnAj+T9AgwOiKixpgmAr+XtDlpKm5P4Khm6o4DugM3AltKugsYmQPAevQD9pF0ZuFYN1Zl5XoDTcf7EvX5L+CHkv4f4Dngq8CXm9SZ2+TzMNJU6sOSPgSmABdERIvTpVnxO5wLfBL4NPB6M331A66RdGXh2LpUyTSamZlZfVYnKHs1v24LVLIo/QrlN5Om2w6PiHfymq/plcKIWCDpblIw0Qu4PSIWFcrHA+MlrQ+cD0wjZYKaFRFzJD0JHJ3bfCAiqgYKEbGUNO02Oq+Nm0IK1I6pUn1llWPzgEkRMa6Z4bwK9G1yrB8pyGpRRLwt6XbSdPDTwMsR8UhLY4qIl4BjASTtTMpYvkTOTtZQ/A77kqaeFxXKm17/PNL6tlsxMzOzdtHmoCwiXpH0IDBW0jDgU6RMTcWGwGLg3ZwN+06VZsYD1wIbkKa+AJC0Kylb8wQpQHiXGgvkCyYCI0iZsrObqyRpMPA88CywBPighT4WAntIWqcwpXc5MFHSo8BvSFmynYGGnNGbDNyXt9N4KF/fbtQRlBWu46ek9XQTa1WW9E3g/oj4K/B2vpZ679n3JA0nTRmfD9xUuM5qLgPOl/QcKWhcD9gFWBQRc+rs08zMzApWd6H/UaTgaT5p2m5yoewEYDgpoJrGqrVjRTNJWZjFpKczK3oCV5KyNW8CB1AI2mq4GdiOVQvgm7M9KXP3Dml67n2qB46Q1rptALwp6W1J3fKThieQsmuLSE9fXpb7JSJmAaflc/8GHAjcUuc1QHoq8j1SsDO5Rl1I6/uelLQEeIQU0E1t+RQgPahxN/AH4C+kJynPbOmEiLiO9KTtROAt4GVSQN4pW3OYmZmtjRoaG6utge88Ods2MyIuXqMD6YIqW2JERKftPdZwyfJm/8M1nuUt0MzMbK3TUG/FNfpXMG8fsStp6wozMzOzLmuNBWWSngD6A6dVNkmt45xRwKhmigcWtqcoNUlDSGvpqjmxuAFtO/S1pJmi2cAP2qsfMzMzWz1rfPrSuhZPX5qZWRfz8Zi+tK7nzh1nMHjw4DU9DDMzs9LxD5KbmZmZlYCDMjMzM7MScFBmZmZmVgIOyszMzMxKwEGZmZmZWQk4KDMzMzMrAQdlZmZmZiXgzWOtU1U2j/VGsWZm1kXUvXmsM2VmZmZmJeCgzMzMzKwEHJSZmZmZlYCDMjMzM7MSaNegTNIMSSPbs81W9v+MpK+38dw+kpZI2qq9x1VWkuZKOnpNj8PMzMygXR+Bi4iB7dleG/ofUE89SUOBcyOif+Hcl4EeHTQ0MzMzsxZ5+tLajaTua3oMZmZmH1ftmimT9CDwADAWuBo4BFgPWAiMiojbapy/PnAh8FVgI+Bx4NSIeF5SD+AJYGpEXJTrjwGOAhQRSyXNJWXApkjqBYwH9s3XOR84GVgO/AT4hKQlueuDgLnAS8A2EfGKpPOBvYDHgOG53o8j4rzCeAcB44A+wIPAc8DnI+JLNa6z0nYAx5KC4/8P+G9gIrAr8CxwdET8OZ+zLjASGApsDjwDjIiIJ3P5JKAb8CFwKLAUOAv4M3Ad8E+5vyER8dfCcLaT9DDwOWAOcHJEPFEY6/HA6cA2wIvAORExs3AdewO/Bb6RX9dottTMzOzjqqMyZUNJgcU/R8SGwH7An+o473pS8LAHsAUpILpLUveIWAIcDoyUtI+kfYCzgcMiYmmVts4G1ge2BTYmBSqvRMQjwEnAixHRI/97sJnx7A28DGwFDAZGSfoCgKTtgWnA/83tXwYcV8c1Ftt+Ll/n0aTgbgJwCrAJKZi6olD/QuBg4EBgU+AG4L4cfFYcRgrsNsnjui6f9/8CnwEagfObjOMkUtC1CXAbcI+kDfM1ngCcAwwBegGjgWmS+hfO3xtYQAravtqK6zczM7OCjtpWfRlpfdZOkh6JiPm1TpD0aeBIYNuIeC0fuwA4A9gdeDgi/ihpBPDTfNppEfFMC2PYFNgReCoinm3DdTwbET/J7x+T9DtAwK/zWB+LiP/K5b+QdAcpOKm37evz+xmS3gTuK2TGfgpMze8bgNOAQRHxYj5ngqQzgEHAlHzslxFxdz5nMvBj4KaIeCUfuw04vsk4JhSybT8A/oOUOfwpMAK4MCKeznXvkfQr4Ajgonzs5Yi4NL9fVue1m5mZWRMdFZRNIWVmLgP+l6RfACMj4vkWzumXX38vqXi8Ox8NdG4Bvg+8B9zUQnvj8rk3AltKuiuP4bVWXMeCJp+XAj3z+62BeU3K51F/UNa07feaHHuv0NenSUHudEnF38XqDvSu1mZEvJfvY3NtVswtnNMo6eVCm/2AayRdWai/LvBKtfPNzMys7TokKIuI5cAPgB9I2pi0vuwG0lRXcyoBzv+KiDdaqHcVae3TpqSpuO82M4alpOm20ZK2IAWK44BjgJV1X0zzXgUOaHKsTzu0W80iUkD45eJ6r3bSt/ImZ+T6sCromgecFxG3tnB+e9xLMzOzLq9DgjJJ+wKLgd8D75MCiuUtnRMRr+cpux9JOiMiXs0B3T7A/RGxRNI3SFNrnyc9CPCYpNkRcX+VMQwGnictmF8CfFAYw0Jgc0kbRsQ7bbzM/wLGSPoaaR3XXqQHG37bxvaalTNYVwCXSBoeEc/lBx++APyhycL91jpW0s+BPwDfIq3DuzuXXQacL+k54GnSQxu7AIsiYs5q9GlmZmZNdNRC/8+QphbfIk2fbQucWMd5xwN/AR6U9C4pUDgcaJS0E3AN6enBBTkoOAWYImnLKm1tD0wH3iFNsb0PfCeX/RK4H3hJ0tuSvtjaC4yIF/LYLiAFoGfla/57a9uq03nAHcAdkt4hPSRwEqv/HY4HriR9V18nrVtbDBAR15GepJ2Yy18GxpCmTc3MzKwdNTQ2NtauZXWR9F/AuxFxwpoeS1k1XLK8EaDxrI5azmhmZlYqDfVW9F/G1ZCnSB8G3iU9BflV4N/W6KDMzMzsY6lTgzJJPyHtyVXNTvmnjj5Ovkia2luPNLV3UkT8StJewIxmzrk4Ii7urAGamZnZx4OnL61TefrSzMy6mLqnL/3bl9ap7txxhgMyMzOzKhyUmZmZmZWAgzIzMzOzEnBQZmZmZlYCDsrMzMzMSsBBmZmZmVkJOCgzMzMzKwEHZWZmZmYl4KDMOtW//2Xgmh6CmZlZKTkoMzMzMysBB2VmZmZmJeCgzMzMzKwEHJSZmZmZlYCDMjMzM7MS6PJBmaQHJZ3bCf00SvrXju7HzMzMPp7WXdMDsPKQNBc4NyKmtHRc0snAKUAfYAXwAjAuIm7p1AGbmZmtRRyUWatIOhI4DzgYeBxYDxDwqTU5LjMzs487B2UFkv43cDnweeAt4AbgexGxIpf3BcYB/0oKQp4B/j0i3pR0MXAEsDnwGnBVRFzeQl97Ad8Ddsp9/Qj4YUQ01hjjusBIYGju6xlgREQ8mcsnAd2AD4DDgaXAhRFxbevuRrP2BGZFxGP58/vA7HZq28zMrMvq8mvKKiRtBNwP/ArYAhgEHAucmcvXB34JvA78E/Bp4CxgWW7iT6RgrSdwPPA9Sf/WTF8DgHtIAd5mua9TgW/UMdQLSVmqA4FNSYHjfZJ6FeocBkwHNgFOA66WtG0dbddjFvDvki6StJ+kjdupXTMzsy7NmbJVBpECrItyturPkn5ACsrGAQeRsmOnR8TyfM4jlZObrMP6paS7gf2A+6r0dTJwa0TckT/PkXQ1cAwwubkBSmogBVmDIuLFfHiCpDPy+Ctj+GVE3JnfT5P0NvA5YF6tm1BLRNwq6X1SwHo88GlJs4DTIuKPq9u+mZlZV+WgbJVtgLlNpg9fyMcB+gIvFgKyj5A0ghSk9AYaSAHcT5vpqx+wr6RDC8fWAebXGOOngR7AdEnFcXbP/VYsaHLeUlIGr5YPc1tNdc9lAETEXcBdAJL+iTT1epekfrWmX83MzKw6B2WrzAe2ldRQCCy2Y1WgNBfoJ6lbZY1ZhaQvAD8gZcYei4gVkm4jBWfVzANuiIhTWjnGRaQA68sR8UQrz63HXKB/8YCkHsBngBernRARcyRdBtwJ9AL+1gHjMjMzW+s5KFvlbtIi/1GSxpGyWecA1xbKxwKXSRoDLAF2JS2035C0NcQbQKOkQcBA4NZm+voR8JCke4F7gUZgB/j/27v7eKuqOo/jn188+ESoJVSKPJj4UKImy142mlGaVmppZo6FZlSC1aunyWkiTSYtzaGsJs0sBcXSrEkMncQyrXQmm1XOJJlPCKgoAQoEmBq65o/fOtx9N/ece+/hcM8++X2/Xud179mPa6+91t6/vfba+zAixvjLegmMMaYQwteBmSGED8YYH8hB08HA3THGx5rffABmA1/L6fqvvF0z8zbeBRBCmAKsBW6NMa4MIYwCpgH3xBgVkImIiDRJHf2zGOMa4AjgcPzpyfl4/66v5vHrgTfhtzMfAJ7A+5oNydPOwV8RsRLvaH9dg3UtwPuofQK/1bgcD4hG9CGpZwPXA9eHEP6S0zKNFuzLGOP3gOnARXiL1wL8NuzRhdu2q4AP433u1gN3Aqvz9oiIiEiTLCV1AZKBYzM3pPRpNdCKiMgLRr2uTJtQS5mIiIhIBajJomJCCNPxW4g9eWuMsekXtYYQLgEm1xn9qhjjw80uW0RERDaPbl/KgJo3b1465phj2p0MERGRgaLblyIiIiKdREGZiIiISAUoKBMRERGpAAVlIiIiIhWgoExERESkAhSUiYiIiFSAgjIRERGRClBQJiIiIlIBCspEREREKkBBmYiIiEgFKCgTERERqQAFZSIiIiIVoKBMREREpAIUlImIiIhUgIIyERERkQpQUCYiIiJSAQrKRERERCrAUkrtToO8gGy11VYLnn322afbnY5OM3jw4J02bNiwst3p6DTKt+Yo35qjfGvOCyDfVqaU3tKXCQdv6ZSIFE2YMOHpGGNodzo6TQghKt/6T/nWHOVbc5RvzVG+ddHtSxEREZEKUFAmIiIiUgEKymSgXdruBHQo5VtzlG/NUb41R/nWHOVbpo7+IiIiIhWgljIRERGRClBQJiIiIlIBeiWGDIgQwh7AFcBLgSeAU2KMD7Q3VdUWQngpMAd4JfAM8CAwNca4oq0J6yAhhLOBGcCEGOOCNien8kIIWwMXAocDTwP/HWM8rb2pqr4QwtHAOYDhjR0zYow/bm+qqieEMBM4HhhLoU7q/NBFLWUyUC4BLoox7gFcBHy7zenpBAm4IMa4Z4xxX2AhcH6b09QxQggHAAcBD7c7LR3kAjwY2yPGOAE4q83pqbwQguEXTyfHGPcHJgNXhBB0ft3UXOBQYElpuM4PmQqNbHEhhJHAAcDVedDVwAEhhBHtS1X1xRifjDHeVhj0G2BMm5LTUUIIW+EH9w/jwa30IoQwDDgFOCvGmABijH9ub6o6xvPA9vn/HYDHY4zPtzE9lRRjvD3G+EhxmM4P3Skok4GwK7A0xvgcQP77WB4ufZCvuk8HftLutHSILwBXxRgXtTshHeSV+K2js0MIMYRwWwjhkHYnqupyAPtu4PoQwhK8Neh97U1VR9H5oUBBmUhn+HdgHfDNdiek6kIIrwMOBC5ud1o6zGBgN+Cu/JM3nwF+HEIY3t5kVVsIYTDwWeAdMcYxwDHAD3LLo0i/KCiTgfAIsEsIYRBA/rtzHi69yJ1jxwMn6pZIn7wB2AtYFEJYDIwC5ocQjmhrqqpvCbCBfBspxngnsBLYo52J6gD7AzvHGO8AyH/XA3u3NVWdQ+eHAgVlssXFGJcD/wuclAedhF+N6ynCXoQQvghMBI6NMT7T7vR0ghjj+THGnWOMY2OMY4FHgSNjjDe3OWmVFmNcCdwKvBk2PhE3En/qV+p7FBgVQtgTIISwN/By/MEc6YXOD93pjf4yIEIIe+GPPO8IrMIfeb6vvamqthDCq4EFwP3AX/PgRTHG49qXqs6TW8uO1isxehdC2A24HH81wd+Az8UYf9reVFVfCOG9wL/gHf4Bzo4xzm1jkiophPAN4J140LoSeCLG+GqdH7ooKBMRERGpAN2+FBEREakABWUiIiIiFaCgTERERKQCFJSJiIiIVICCMhEREZEKUFAm0gszO9LMfl34PsnMFrcxSQPGzGab2XdbuLyxZpYK30eY2RIz26kP804zszmtSksnMLPXm9nqdqfjhcjMJvennre6rkhjW6puNLHfv2xm57Rq/QrKRBowMwMuBM7uZbrTzWyBmf3FzFaZWTSzEwvjF5vZ5B7m22S4ufvzsoaVxk0ys2Rm6/LnMTObZWYv2bwtbY+U0grg+/Sev9vhv2c5YwCSVRkppV+nlHZodzrqMbMZZvbzdqfjhWBL5bWZ3WZmZ7Z6uVtauW60sSyeD3zEzHZpxcIUlIk0dgQwFH/TeY/M7CQ8qPgAsD3+EyGfxF+C2Iw34r9B+Dxdb7kuei6lNCylNAw4BHgd8LUm11UFlwPvN7NGv7E4Gbg7pdSWt6Sb2SAz0/FSRLpJKa0CfgpMbcXydJCRysitRmea2a25FehuM9vXzE4yswfNbI2ZfdfMBhfmGW1mPzKzx/PnUjN7cWH8l8zsoby8hWb2icK4sbnV6WQzu8fM1prZzWb2ikKyjgV+nhq/ZfkfgF+llO5M7q/5Kq7Zn/WZCtwEzKGXip5Segi4AXhNeZyZDc558o7S8CvM7PL8/2Fmdmdu3VthZteY2ch668v5dUjh+yQz21Ba5/Tc0rfazO4ws4m9bMMD+Nu9D28w2bHAz0pp+biZ3Zv328Nmdp6ZDcrjZprZdaXp35in3S5/38fM5pvZysL8Q/K4Wtn4gJndAzwFjDSzfzSz/8utmI+b2bdry8vzvdzM5uWyen+eP5nZ2MI0H8qtqmvM7C4zq/ubnD3k72wzm2Nml+f8XZrrx/5m9j95+241s50L8yw2s8+b2e25HkQzO7AwvmEZMLMheZ/el5e/0MyON28Jng5Msq6W293qbMcb8jrW5H02tTBukpltMLMT87LXmNm1xXrcw/KaOVbsa2a/yNv5UJ5/UGH8a3PerDOz2/ELo+I6t83lapGZPWlmN5nZ7vXS2EOaX2pmV+Zys8y8Hr6kML5bq3mhDI6ql9dmdmre3s/k5S43s6/0UI5HFZZ7qpk9mP//JvB64Ky8zB7fom/eCnWL+a26FWb2hJl9yszG5Dxda2a/M7O9C/NsVl0plPXvFMr6JuUm/98wf0rb0u02c4v2+8/wY9TmSynpo08lPsBi4AH8h3yHAFfhvx93KbAdMBpYDrwnT781/rt8XwC2wX+i4z+BywvLnIy3XBnwJvznilBCMUIAAApESURBVI7M48YCCQ9qdgKGA3cA3ynMfyfwsVI6JwGLC99PAJ4GzgUOA3aos22TexsOjACewX+KZP+cvomldW8ofN8duK+4zaXlXwDMLXwfBqwDXp+/HwIcCAzGf/rkV8DVhelnA98tfE/AIQ3S86WcZ7sBg/DWw5XAjsU87yGd84BzG5SNPwNvLw07HhiX9+1r8jRT87hXAc8CIwrTXwFclv8fCTyBB71DgV2ACHy+VDZuyfkyNG/PW4FX4xe0uwP3AOcV1nEL8B+5LI0EbsvLGZvHn4aX2f3yMt6W98fudba7nL+z8TJ8VJ5/Wp7/J/gPr28L/AK4tFTGHsN/Q3Uo/nNAK4DhfSwDX87buW/O61HAvnncDPyipVG9HpfT/P68joOAJ4ETCtuYgMvw8vky/DjwuRYeK7bP5eMsYKs830PAGYXxT+S8GZrzYxnd6/n38WPFy/I0/wrcCwzpqa70kOab8HK+Y/7cCNzY4FgwNufLqHp5DZyK/xzWRfgx8JX4z7J9tqdlFOZ5sPD9NuDMXvbhjLyeD9JVD54Dfl7aBzcX5tncujIbLzdvz8t4Z07DmDp1o17+PFgatnE/tWK/52km4nc2hjbKx758BvSkq48+jT75oHRG4fvbciUtnlivBS7M/78LWFhaxkQ8qBlUZx0/Ai7I/9cOWAcWxn8EuKvw/X7g1NIyJhUrbR52NPBj/MD/HH67c5/Stq0HVpc+z9P9QPzP+MmkdqD/PfDt0rpTnncVsAi4hB4CwTz93nhwMjJ/nwLc32AfHA0sL3zfeADL3+sGZfgJey1waGmZd9e2kfpB2feAixuk61lgUi/lZyZwbeH7ncAn8/8vxoOXg/P3TwO/KM1/PPkAXigbh/ayzo8Cv83/j8rz7FYYfxjdTzQLgFNKy5hHnZMiPQdlxRP5tnn5JxSGfZjuZXgxcE7huwEPkwOWRmUgT7sOOKrOtDPoPSibDtxRGnYeML9Upov1/N+A6xosczH9O1a8B3iE/NOCedhU4L78/3tznhTHf5Fcz/GLtgSMLox/EbCGXB9oEJThF4YJGF8Ytmce9orCNjUTlD0DbFsY9kFyHS8vozBPM0HZH0vDlvewD1a1sK7MplDW87AVwDvq1I16+dMoKNvs/Z6Hjc/TjWyUj335bGzaFamIxwv/P4X3n1pRGla7rTEOGG2bPoGT8Cv+pWb2MeBD+EHA8KvJ7zdY5/rC8sEDn0Z9nXyFKd2AX01hZnsBFwM3mNm4lGst3opzVXE+KzzlY2aW03pVSulvefBlwPlm9k8ppXV52HOpj52/U0p/MrPf4y2GX8VbK2YV1jkRb93aDz/BG95a0Yyd8rzzrPCEJX4VParnWTYajgeY9WyyH8z78n0Kb5UbjF/F/qYwySw8QLkQeDewNKV0Rx43Dji4VHYMbwUoWlxa55uBzwN74S0ug/CTE3hrG/hBvmZJaXnjgIvM7BuFYYOBR+m7jeU1pfSUF5tN6k351t/iwjzJzB4m75NeysAIvOXp/n6kr2xXvFWqaCFQvK1erufletiT/hwrdsVPtMVyuTAPB8+LJaXxxfI4Lv/9Q87vmiGFZTRSm6a4zIWFcY/TvOUppacK3xfTe31rRjmNT9Gg3LWgrvS0zr6Ui/5o1X4fTtfF8mZRnzLpZEvwK8IdSp+tU0pLzexg/NbLVGCnHMjMw086fXUXfiusz1JK9+KBwBj8NkVfHYY380/JfU6W4U3lw/Ar/WbNAk7N/SAOAq4sjLsGb43bI6U0nJ4fLChaj5+ka3Yu/L8yjz+8tD+2Symd38ty98Hzup5u+8HMdsVvl5yLtzRsj9/CKe7ba4DxZnYAfsU8qzBuCX5VXUzn9skfnih6vrDOocDcvNzROb8+U1jn0vx3dGH+4v+19U4prXdYSun0BtveCmNr/+TgfzRdgWCjMrAC36fj6yz3+TrDix6h6+RWs1sePlAeAcZY9zNrMQ1LexhfTHMtYBhf2nfbppSu7uP6obAf6Oq7VBu3jvp1C+rn9Ugz27bwfSxd+7Z2IdfMcpvWorrSXz1tRzlPofv2t2q/74O3JD7bbOJrFJRJJ7sBqHVCfrG5XczsuDx+OH4rcQWQzOwovJ9Df8zFg6W6zGyKmZ1g+V1buVPtNOCelNKT/VjXaXh/nr3w/mT745V9Fpv3ZM81eLD3DeBnKaWlhXHD8ab4tWY2Gu9b0UgE3mdmQ3OH3E/VRuSrza8DM81sPICZDTN/z1v5RLBRDhZH4P1T6plL9wcBhuHHrxXA38zsIODk4gwppdXAdXjgVg5GrwRC3ndbm9mLcsfgtzRIw1C8H+OqlNJfzexV+C2Z2voexW8FnZ/L40ig/KqBC4EZ5h3zzcy2MbNDcuvqljTFzA4w7wB+Bt4idmMeV7cM5H36LeAC8wcjanVsQp5kGd5aPbTBuq8GJprZKeYPgrwWL8+XtXQLG7sR33fTc9ndEw8Samm4AS9TZ5g/2HAAfqsfgJTScryF/WLLrz4wsx3M7DgrvbamJymlx4Cbga/k+XYEvgL8NKVUaw2KwEm5zozA+78V1cvrF+FlbhvzBy0+jfefJKW0knwhYP4E8QS8Nb683D4/sNBHragr/dVT/tyFB61H5zp+HHBoYXyr9vub8WPUZlNQJh0rN9kfhreg3IufWG7BgxmA+fgTjL/FW3HehZ+k+2M+sMHMJjWYZhV+m+xPZrYe78u0Gu+b0yf5oHQsMDOltKz4wVv7XmNmoZ9pByCltAbf7rfir58oOg3vg7IW7xP3w14W91H8AP4k3mdndmn82cD1wPVm9he8M/Y0Gh9rpgCzczrrmQPsl086pJT+VFjXajyQ6KnFYha+3fPziZE8/zL81SPH4rd7VuF51OPTg3medcDpeICyDm+ZK98Kfw8e8DwK3E5Xfj6Tl/Ed/OGLWXmdD+Mn3yENtr0VLsWD8lXAiXgfsVp+91YGPofv67l5ml/S1XL2Q7ylZ5n5E3LlFjFSSovw/kYfxTtVz8EfqLi2ZVvXi7ytR+CB/Z/xen0lfku/FsAfhefNKjyvvlVazIfwh2puM7O1eF/JE/DbVn0xGc+/e/NnNXBKYfyZ+EXk43jAck1p/np5vQRv8VmEH3tuwstYzfvwY9GavL3lYPhC/AJltZn9sY/b0lAr6koTNsmf5K/Q+The/p8E3oI/XFBL52bvdzPbAS/flzSZ7m6s+61UESnLrSfTU0qH5u+T8CBibDvT1Yly69qilJLl7zsBvwNCqT9QT/NOwzvqn9xouioxsyPxwHGb1KaDrXm/xTPL/Rml85nZqfi+bXVL14CrQl1phpmdh/dnbMkLeNXRX6QXKaWb8KtPabF8e2VMH6e9hBZdjW4pZrYffgV9N9435VzgB510khEZCH8vdSWl9NlWLk+3L0X6bzGd/Qb9dlqNP7zw9+ol+C3AdfgtmT/gt09EpDvVlR7o9qWIiIhIBailTERERKQCFJSJiIiIVICCMhEREZEKUFAmIiIiUgEKykREREQq4P8BOmFi2p4J+IUAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "shap.summary_plot(shap_values, Xdf, plot_type='bar')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<caption>OLS Regression Results</caption>\n",
       "<tr>\n",
       "  <th>Dep. Variable:</th>            <td>y</td>        <th>  R-squared:         </th> <td>  -0.000</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Model:</th>                   <td>OLS</td>       <th>  Adj. R-squared:    </th> <td>  -0.000</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Method:</th>             <td>Least Squares</td>  <th>  F-statistic:       </th> <td>    -inf</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Date:</th>             <td>Fri, 07 Jun 2019</td> <th>  Prob (F-statistic):</th>  <td>   nan</td>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Time:</th>                 <td>20:29:07</td>     <th>  Log-Likelihood:    </th> <td> -46991.</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>No. Observations:</th>      <td> 10000</td>      <th>  AIC:               </th> <td>9.398e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Residuals:</th>          <td>  9999</td>      <th>  BIC:               </th> <td>9.399e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Model:</th>              <td>     0</td>      <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Covariance Type:</th>      <td>nonrobust</td>    <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "    <td></td>       <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>const</th> <td>   10.9125</td> <td>    0.266</td> <td>   41.052</td> <td> 0.000</td> <td>   10.391</td> <td>   11.434</td>\n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "  <th>Omnibus:</th>       <td>464.249</td> <th>  Durbin-Watson:     </th> <td>   1.998</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Prob(Omnibus):</th> <td> 0.000</td>  <th>  Jarque-Bera (JB):  </th> <td> 256.490</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Skew:</th>          <td>-0.234</td>  <th>  Prob(JB):          </th> <td>2.01e-56</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Kurtosis:</th>      <td> 2.370</td>  <th>  Cond. No.          </th> <td>    1.00</td>\n",
       "</tr>\n",
       "</table><br/><br/>Warnings:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified."
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.summary.Summary'>\n",
       "\"\"\"\n",
       "                            OLS Regression Results                            \n",
       "==============================================================================\n",
       "Dep. Variable:                      y   R-squared:                      -0.000\n",
       "Model:                            OLS   Adj. R-squared:                 -0.000\n",
       "Method:                 Least Squares   F-statistic:                      -inf\n",
       "Date:                Fri, 07 Jun 2019   Prob (F-statistic):                nan\n",
       "Time:                        20:29:07   Log-Likelihood:                -46991.\n",
       "No. Observations:               10000   AIC:                         9.398e+04\n",
       "Df Residuals:                    9999   BIC:                         9.399e+04\n",
       "Df Model:                           0                                         \n",
       "Covariance Type:            nonrobust                                         \n",
       "==============================================================================\n",
       "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
       "------------------------------------------------------------------------------\n",
       "const         10.9125      0.266     41.052      0.000      10.391      11.434\n",
       "==============================================================================\n",
       "Omnibus:                      464.249   Durbin-Watson:                   1.998\n",
       "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              256.490\n",
       "Skew:                          -0.234   Prob(JB):                     2.01e-56\n",
       "Kurtosis:                       2.370   Cond. No.                         1.00\n",
       "==============================================================================\n",
       "\n",
       "Warnings:\n",
       "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
       "\"\"\""
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from utilities import ConstantModel\n",
    "rf_dr_cate.refit_final(ConstantModel(), opt_reweighted=False)\n",
    "rf_dr_cate.effect_model.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Using Generic DRIV"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [],
   "source": [
    "from dml_iv import DMLIV\n",
    "from dr_iv import DRIV, ProjectedDRIV\n",
    "from utilities import SubsetWrapper, StatsModelLinearRegression, ConstantModel\n",
    "\n",
    "np.random.seed(123)\n",
    "\n",
    "# For DRIV we need a model for predicting E[T*Z | X]. We use a classifier\n",
    "model_TZ_X = lambda: model_clf()\n",
    "\n",
    "# For generic DRIV we also need to provide a preliminary effect model. Here we use DMLIV\n",
    "dmliv_featurizer = lambda: PolynomialFeatures(degree=1, include_bias=True)\n",
    "dmliv_model_effect = lambda: SelectiveLasso(np.arange(1, X.shape[1]+1), LassoCV(cv=5, n_jobs=-1))\n",
    "prel_model_effect = DMLIV(model_Y_X(), model_T_X(), model_T_XZ(),\n",
    "                          dmliv_model_effect(), dmliv_featurizer(), n_splits=1)\n",
    "\n",
    "dr_cate = DRIV(model_Y_X(), model_T_X(), model_Z_X(), # same as in DMLATEIV\n",
    "                        prel_model_effect, # preliminary model for CATE, must support fit(y, T, X, Z) and effect(X)\n",
    "                        model_TZ_X(), # model for E[T * Z | X]\n",
    "                        ConstantModel(), # model for final stage of fitting theta(X)\n",
    "                        cov_clip=.0001, # covariance clipping to avoid large values in final regression from weak instruments\n",
    "                        n_splits=10, # number of splits to use for cross-fitting\n",
    "                        binary_instrument=True, # a flag whether to stratify cross-fitting by instrument\n",
    "                        binary_treatment=True, # a flag whether to stratify cross-fitting by treatment\n",
    "                        opt_reweighted=False\n",
    "                       )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wall time: 9.63 s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<dr_iv.DRIV at 0x2b3634c9c88>"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "dr_cate.fit(y, T, X, Z, store_final=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<caption>OLS Regression Results</caption>\n",
       "<tr>\n",
       "  <th>Dep. Variable:</th>            <td>y</td>        <th>  R-squared:         </th> <td>  -0.000</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Model:</th>                   <td>OLS</td>       <th>  Adj. R-squared:    </th> <td>  -0.000</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Method:</th>             <td>Least Squares</td>  <th>  F-statistic:       </th> <td>    -inf</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Date:</th>             <td>Fri, 07 Jun 2019</td> <th>  Prob (F-statistic):</th>  <td>   nan</td>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Time:</th>                 <td>20:29:19</td>     <th>  Log-Likelihood:    </th> <td> -47493.</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>No. Observations:</th>      <td> 10000</td>      <th>  AIC:               </th> <td>9.499e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Residuals:</th>          <td>  9999</td>      <th>  BIC:               </th> <td>9.500e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Model:</th>              <td>     0</td>      <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Covariance Type:</th>      <td>nonrobust</td>    <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "    <td></td>       <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>const</th> <td>   10.8649</td> <td>    0.280</td> <td>   38.872</td> <td> 0.000</td> <td>   10.317</td> <td>   11.413</td>\n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "  <th>Omnibus:</th>       <td>101.664</td> <th>  Durbin-Watson:     </th> <td>   1.997</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Prob(Omnibus):</th> <td> 0.000</td>  <th>  Jarque-Bera (JB):  </th> <td> 104.449</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Skew:</th>          <td>-0.248</td>  <th>  Prob(JB):          </th> <td>2.08e-23</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Kurtosis:</th>      <td> 2.929</td>  <th>  Cond. No.          </th> <td>    1.00</td>\n",
       "</tr>\n",
       "</table><br/><br/>Warnings:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified."
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.summary.Summary'>\n",
       "\"\"\"\n",
       "                            OLS Regression Results                            \n",
       "==============================================================================\n",
       "Dep. Variable:                      y   R-squared:                      -0.000\n",
       "Model:                            OLS   Adj. R-squared:                 -0.000\n",
       "Method:                 Least Squares   F-statistic:                      -inf\n",
       "Date:                Fri, 07 Jun 2019   Prob (F-statistic):                nan\n",
       "Time:                        20:29:19   Log-Likelihood:                -47493.\n",
       "No. Observations:               10000   AIC:                         9.499e+04\n",
       "Df Residuals:                    9999   BIC:                         9.500e+04\n",
       "Df Model:                           0                                         \n",
       "Covariance Type:            nonrobust                                         \n",
       "==============================================================================\n",
       "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
       "------------------------------------------------------------------------------\n",
       "const         10.8649      0.280     38.872      0.000      10.317      11.413\n",
       "==============================================================================\n",
       "Omnibus:                      101.664   Durbin-Watson:                   1.997\n",
       "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              104.449\n",
       "Skew:                          -0.248   Prob(JB):                     2.08e-23\n",
       "Kurtosis:                       2.929   Cond. No.                         1.00\n",
       "==============================================================================\n",
       "\n",
       "Warnings:\n",
       "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
       "\"\"\""
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dr_cate.effect_model.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Deep CATE Models"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from deep_dr_iv import DeepIntentToTreatDRIV\n",
    "import keras\n",
    "treatment_model = lambda: keras.Sequential([keras.layers.Dense(1000, activation='relu'),\n",
    "                                            keras.layers.Dropout(0.17),\n",
    "                                            keras.layers.Dense(1)])\n",
    "keras_fit_options = { \"epochs\": 100,\n",
    "                      \"batch_size\": 32,\n",
    "                      \"validation_split\": 0.1,\n",
    "                      \"callbacks\": [keras.callbacks.EarlyStopping(patience=10, restore_best_weights=True)],\n",
    "                      \"verbose\": 0}\n",
    "dr_cate = DeepIntentToTreatDRIV(model_Y_X(), model_T_XZ(),\n",
    "                                treatment_model(),\n",
    "                                training_options=keras_fit_options,\n",
    "                                cov_clip=0.0001,\n",
    "                                opt_reweighted=False,\n",
    "                                n_splits=3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From C:\\ProgramData\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\framework\\op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n",
      "WARNING:tensorflow:From C:\\ProgramData\\Anaconda3\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:3445: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n",
      "WARNING:tensorflow:From C:\\ProgramData\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\ops\\math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n",
      "Wall time: 1min 6s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<deep_dr_iv.DeepIntentToTreatDRIV at 0x2b37227afd0>"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "dr_cate.fit(y, T, X, Z, store_final=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [],
   "source": [
    "dr_effect = dr_cate.effect(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.title(\"DRIV CATE: MSE {:.2}\".format(np.mean((true_fn(X_pre) - dr_effect)**2)))\n",
    "plot_separate(X, X_pre, dr_effect)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<deep_dr_iv.DeepIntentToTreatDRIV at 0x2b37227afd0>"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from utilities import ConstantModel\n",
    "dr_cate.refit_final(ConstantModel(), opt_reweighted=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<caption>OLS Regression Results</caption>\n",
       "<tr>\n",
       "  <th>Dep. Variable:</th>            <td>y</td>        <th>  R-squared:         </th> <td>   0.000</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Model:</th>                   <td>OLS</td>       <th>  Adj. R-squared:    </th> <td>   0.000</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Method:</th>             <td>Least Squares</td>  <th>  F-statistic:       </th> <td>     inf</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Date:</th>             <td>Fri, 07 Jun 2019</td> <th>  Prob (F-statistic):</th>  <td>   nan</td>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Time:</th>                 <td>20:30:41</td>     <th>  Log-Likelihood:    </th> <td> -47448.</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>No. Observations:</th>      <td> 10000</td>      <th>  AIC:               </th> <td>9.490e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Residuals:</th>          <td>  9999</td>      <th>  BIC:               </th> <td>9.490e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Model:</th>              <td>     0</td>      <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Covariance Type:</th>      <td>nonrobust</td>    <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "    <td></td>       <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>const</th> <td>   10.9521</td> <td>    0.278</td> <td>   39.363</td> <td> 0.000</td> <td>   10.407</td> <td>   11.498</td>\n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "  <th>Omnibus:</th>       <td>295.156</td> <th>  Durbin-Watson:     </th> <td>   1.997</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Prob(Omnibus):</th> <td> 0.000</td>  <th>  Jarque-Bera (JB):  </th> <td> 205.622</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Skew:</th>          <td>-0.242</td>  <th>  Prob(JB):          </th> <td>2.24e-45</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Kurtosis:</th>      <td> 2.492</td>  <th>  Cond. No.          </th> <td>    1.00</td>\n",
       "</tr>\n",
       "</table><br/><br/>Warnings:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified."
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.summary.Summary'>\n",
       "\"\"\"\n",
       "                            OLS Regression Results                            \n",
       "==============================================================================\n",
       "Dep. Variable:                      y   R-squared:                       0.000\n",
       "Model:                            OLS   Adj. R-squared:                  0.000\n",
       "Method:                 Least Squares   F-statistic:                       inf\n",
       "Date:                Fri, 07 Jun 2019   Prob (F-statistic):                nan\n",
       "Time:                        20:30:41   Log-Likelihood:                -47448.\n",
       "No. Observations:               10000   AIC:                         9.490e+04\n",
       "Df Residuals:                    9999   BIC:                         9.490e+04\n",
       "Df Model:                           0                                         \n",
       "Covariance Type:            nonrobust                                         \n",
       "==============================================================================\n",
       "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
       "------------------------------------------------------------------------------\n",
       "const         10.9521      0.278     39.363      0.000      10.407      11.498\n",
       "==============================================================================\n",
       "Omnibus:                      295.156   Durbin-Watson:                   1.997\n",
       "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              205.622\n",
       "Skew:                          -0.242   Prob(JB):                     2.24e-45\n",
       "Kurtosis:                       2.492   Cond. No.                         1.00\n",
       "==============================================================================\n",
       "\n",
       "Warnings:\n",
       "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
       "\"\"\""
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dr_cate.effect_model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
